الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن كيفية الوصول لخصائص عدد نوافذ

بدأه abdalhady في 9 أغسطس 2009 · 1 رد · 362 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقوم حالياً ببناء برنامج استلام قطع صيانة لشركة

و كما تعرفون فانه يحوي على كثير من النوافذ مثل دليل الزبائن و الموردين و المواد و تفاصيل المواد

و لكن هناك مشكلة اواجهها و هي عند بناء دليل الزبائن و اريد عند الضغط على اسم معين ان ينتقل الاسم

الى نافذة اخرة هي نافذة بطاقة الزبون .... حاولت الكثر لكن لم اعرف الوصول الى خصائص النموذج المفتوح

بعضهم قال لي

اقتباس
Form2 frm = new Form2();

frm.textBox1.Text="AAA";

لكن في هذه الحالة يتم تعريف نافذة جديدة و لا يطبق هذا الشي على الاساسية

و ايضا اريد عندما تعمل النافذة الفلانية تعطيل خصائص اخر في نوافذ اخر و عند اغلاقها ترجع تفعيل الخصائص في النوافذ الاخرى

و طلب الثاني : عندما تكون هناك نافذة مفتوحة اريد ان تظهر رسالة ان هناك نافذة مفتوحة بدلا من فتح واحدة اخرة

و شكر ا

#2

لاحظ معي الكود التالي :

	public partial class Form1 : Form
	{
		// تعريف عنصر نافدة فارغ
		 private Form form2 = null;
		// تعريف عنصر نافدة فارغ
		 private Form form3 = null;
		// تعريف عنصر نافدة فارغ
		 private Form form4 = null;

		public Form1()
		{
			InitializeComponent();
		}

		private void button1_Click(object sender, EventArgs e)
		{
			// أول مرة يكون محتوى الكائن هو الفراغ
			if(form2 == null) {
				// إنشاء كائن جديد
				form2 = new Form();
			} else {
				// ثاني مرة يجب أن نتأكد من أن النافدة لم يتم غلقها
				if(form2.IsDisposed) {
					form2 = new Form();
				}
			}
			// في حالة ما إذا كانت النافدة مازالت مفتوحة
			// و كذلك بعد أنشاء العنصر لأول مرة أو بعد الغلق
			form2.Show();
			form2.Focus();
		}

		private void button2_Click(object sender, EventArgs e)
		{
			// أول مرة يكون محتوى الكائن هو الفراغ
			if(form3 == null) {
				// إنشاء كائن جديد
				form3 = new Form();
			} else {
				// ثاني مرة يجب أن نتأكد من أن النافدة لم يتم غلقها
				if(form3.IsDisposed) {
					form3 = new Form();
				}
			}
			// في حالة ما إذا كانت النافدة مازالت مفتوحة
			// و كذلك بعد أنشاء العنصر لأول مرة أو بعد الغلق
			form3.Show();
			form3.Focus();
		}

		private void button3_Click(object sender, EventArgs e)
		{
			// أول مرة يكون محتوى الكائن هو الفراغ
			if(form4 == null) {
				// إنشاء كائن جديد
				form4 = new Form();
			} else {
				// ثاني مرة يجب أن نتأكد من أن النافدة لم يتم غلقها
				if(form4.IsDisposed) {
					form4 = new Form();
				}
			}
			// في حالة ما إذا كانت النافدة مازالت مفتوحة
			// و كذلك بعد أنشاء العنصر لأول مرة أو بعد الغلق
			form4.Show();
			form4.Focus();
		}
	}

نبدأ بتعريف عنصر من نوع فورم و نحدد محتواه في null حتى يمكننا معرفة ما إذا تم إنشاء كائن بداخله أم لا. لاحظ معي أن العنصر معرف داخل الكلاس للفورم الرئيسي ويمكننا الوصول إليه من داخل أي دالة تنتمي إلى الفورم الرئيسي.

عندما يطلب منا المستخدم أن نظهر نافدة ما, نقوم بتحري الشروط التالية :

- إذا كان المتغير المستقبل للكائن من نوع فورم يحتوي على فراغ -> نقوم بإنشاء عنصر نافدة جديد

- إذا لم يكن فارغا فقد يكون المستخدم قد أغلق النافدة -> ننشئ كائنا جديدا إذا كانت النافدة مغلوقة

- نظهر النافدة بكل أمان.

فهم هذا الكود سيمكنك إن شاء الله من تعديل مشروعك للتعامل مع أي عدد من النوافد.

أتمنى أن أكون قد وفقت للشرح الجيد.

تحياتي...

مواضيع مشابهة