أخواني الأعزاء
كيف يمكن اكتب دالة في ملف class واستدعيها في النماذج
يعني دالة وظيفتها تمسح مربعات النص واستديعها في داخل زر جديد في النموذج
وشكرا
أخواني الأعزاء
كيف يمكن اكتب دالة في ملف class واستدعيها في النماذج
يعني دالة وظيفتها تمسح مربعات النص واستديعها في داخل زر جديد في النموذج
وشكرا
"إن الذين آمنوا وعملوا الصالحات كانت لهم جنات الفردوس نزلا"
ممكن علشان متشغلش دماغك بعدد وأسماء الـ TextBoxes ... تكتب Method زى كدا مثلا ::
public void ClearTextBoxes()
{
Type myType;
foreach(Control control in this.Controls)
{
myType = control.GetType();
if(myType.Name == "TextBox")
{
control.Text = "";
}
}
}أخي الكريم معتز
انا فخور بك انك رددت علي وانا ممن قرأ لك الكثير من المواضيع
بس لي طلب
وهو انني كنت اعمل على فيجوال بيسك وكنت استعمل ملف اسمه module لوضع كافة الدوال والإجراءات فيه واستدعائها في شاشات النظام
وسالت بعض الأخوة عن المقابل لـ module فقالوا لي استعمل Class وبالفعل كتبت دوال في كلاس بس مش عارف استدعيها يعني على سبيل
المثال الدالة التي تكرمت انت بكتابتها لقد كتبتها في كلاس بس كيف ممكن استدعيها في زر على النموذج
وبارك الله فيك
"إن الذين آمنوا وعملوا الصالحات كانت لهم جنات الفردوس نزلا"
عادي يا باشا , مش لازم تعمل كلاس جديد ,,,, اكتب الداله السابقه في نفس الكلاس اللي انت فيه وخلاص.
وعندما تريد استدعائها اكتب اسمها ملحق بالقوسين () ,,,, بس.
أخي معتز
يا ليت تكمل معروفك وتبعتلي مثال مرفق على نفس الموضوع
"إن الذين آمنوا وعملوا الصالحات كانت لهم جنات الفردوس نزلا"
مثال مرفق مع الرد.
ممكن تعمل Overload كمان بتاخد عدد محدد من الـ TextBoxes عشان تمسحهم بس ,, استخدم في الداله for بدلا من foreach ,,, وظبط كدا.
السلام عليكم ورحمة الله
أخى لو كتبت دالة المسح التى وضحها الأخ معتز شمس جزاه الله خيرا ، داخل كلاس إسمها Class1 يمكنك إستدعاء هذه الدالة من خلال الفورم بالطريقة التالية
Class1 cls1 = new Class1(); cls1.ClearTextBoxes();
آسف للرد متأخراً
المهم لو عاوز تعمل functions على جنب كده ممكن تعملهم في class و تعمل الfunctions دي static عشان تقدر تستخدمها من غير ما تحتاج تعمل object من الclass
بس في نقطة في المثال اللي انت عاوزه
ان كل الcontrols جوه الform بتكون private فماينفعش أي class تانية تشوف الcontrols دي و ماتقوليش انك حتعمل الtextboxes دي public عشان تحل المشكلة عشان كده عيب قوي في حق ال OOP
و بعدين الكود بتاع معتز حيفيدك جداً و ده كود تاني برضه لزوم السرعة في الأداء
private void ClearTextBoxes()
{
foreach(Control ctrl in this.Controls)
{
if( ctrl is TextBox)
{
TextBox tmp = ctrl as TextBox;
tmp.Text = "";
}
}
}Sr. Software Development Engineer
Hulu, LLC
My Blogs
أخى ijh_pro نسيت أقول شىء وهو أن كود الأخ معتز شمس يتطلب منك تعديله لو محتاج تستخدمه داخل كلاس والتعديل يكون بالشكل التالى
public void ClearTextBoxes(Form frm)
{
Type myType;
foreach(Control control in frm.Controls)
{
myType = control.GetType();
if(myType.Name == "TextBox")
{
control.Text = "";
}
}
}ثم يتم مناداته بالطريقة التالية
Class1 cls1 = new Class1(); cls1.ClearTextBoxes(this);
ويجب عليك تعريف ال Name space الخاص بأدوات ويندوس داخل الكلاس
هذا الموضوع مغلق.