لوتكرمتم اخواني الأفاضل لدي مشكلة في عدم تمكني من ايجاد حل لإغلاق أو إخفاء فورم فرعي منبثق من فورم رئيسي وذلك لإظهار الفورم الرئيسي في الواجهة
وللتوضيح أكثر يوجد في المرفق مثال بسيط
مع شكري وتقديري
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
لوتكرمتم اخواني الأفاضل لدي مشكلة في عدم تمكني من ايجاد حل لإغلاق أو إخفاء فورم فرعي منبثق من فورم رئيسي وذلك لإظهار الفورم الرئيسي في الواجهة
وللتوضيح أكثر يوجد في المرفق مثال بسيط
شكراً جزيلاً أخواني الأعزاء مهموم، أبو عمر و hassan على مروركم الكريم جزاكم الله خيراً
إلا أن الحل الذي ذكرته أخي أبو عمر مع أنه حل بسيط وجميل إلا أنه لايفي بالغرض حيث أن الهدف هو التالي:
عند تشغيل البرنامج وفي حال وجود شروط مسبقة يظهر الفورم الفرعي أولاً دون ظهور للفورم الرئيسي لذلك استخدمت Dispose
كتابة بيانات معينة في الفورم الفرعي (للعلم هذه البيانات ليست اسم مستخدم وكلمة مرور)
إذا كانت البيانات المدخلة صحيحة يظهر الفورم الرئيسي بالضغط على الزر Button1 في الفورم الفرعي مع اختفاء او إغلاق الفورم الفرعي
وفي حال عدم صحة البيانات المدخلة لا يظهر الفورم الرئيسي أبداً ويتم إغلاق الفورم الفرعي بالضغط على X
عذرا إذا كنت لم أستطع توضيح ذلك من خلال المثال البسيط المرفق سابقاً علماً أن هذه المشكلة ظهرت لدي بعد الانتهاء من بناء البرنامج للأسف
فهل يوجد حل لذلك إخواني الأكارم غير الحلول الترميمية (إذا صح التعبير) مثل وضع الفورم الفرعي جانب الشاشة Me.left=16500 فهذا حل غير فني برأيي
ولكم مني جزيل الشكر والتقدير
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
استخدامك للأمر Dispose قام بحذف الفورم من الذاكرة، وعند العودة من الفورم الفرعي حصل الخطأ.
إذا كان المقصود من الفروم الفرعي تسجيل دخول باسم مستخدم وكلمة مرور فهذا المثال أحد الطرق وليس أفضلها
في Form1
PHP كود :
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Form2.ShowDialog <> Windows.Forms.DialogResult.Yes Then MessageBox.Show("إسم المستخدم أو كلمة المرور غير صحيحة") Application.Exit() End If End Sub
End Class
في Form2
PHP كود :
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Text = "admin" And TextBox2.Text = "123" Then DialogResult = Windows.Forms.DialogResult.Yes Else DialogResult = Windows.Forms.DialogResult.No End If End Sub
شكرا جزيلا لاهتمامك أخي العزيز مهموم لكن الموضوع لايتعلق باسم مستخدم وكلمة مرور كما أوضحت آنفاً
ربما إني بحاجة إلى كود يعيد تشغيل البرنامج من جديد في حال كانت البيانات المدخلة في الفورم الفرعي صحيحة في هذه الحالة فقط يتم ظهور الفورم الرئيسي بدون ظهور الفرعي
سوف أنظر في ذلك الحل وأنتظر ردودكم القيمة لعلي أحصل على المطلوب
تقبل تحياتي
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }
06-10-15, 12:26 AM (آخر تعديل لهذه المشاركة : 06-10-15, 12:33 AM {2} بواسطة مهموم.)
السلام عليكم ورحمة الله وبركاته
الآخ الكريم
إن ما وضعته لك كمثال في استخدام فورمين ومنه تستطيع تستنبط الفكرة والاسلوب وتطبقها لما تريد، لا أن تأخذ مثالي على أنه لا يصلح إلا لتسجيل دخول،
يجب أن تكون أكثر ذكاء وفطنة من ذلك.
أخواني الأفاضل تم بحمد الله التوصل إلى الحل والذي يقوم على مبدأ إعادة تشغيل البرنامج في حال ادخال بيانات صحيحة وبالتالي سيتم إغلاق الفورم الفرعي ويبدأ من جديد اختبار وجود البيانات حيث في حال وجودها سوف يقوم تلقائيا بفتح الفورم الرئيسي
في المرفق تطبيق الحل (مع العلم أن النتيجة ستبدو للوهلة الأولى غير واضحة نظراً لبساطة هذا المثال)
وشكراً لكم جميعا أخواني
دمتم بخير
{ اللهم علمنا ما ينفعنا وانفعنا بما علمتنا إنك أنت العليم الخبير }