منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] الكتابة في أداة تيكس بوكس برمجيا - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] الكتابة في أداة تيكس بوكس برمجيا (/showthread.php?tid=36400)



الكتابة في أداة تيكس بوكس برمجيا - sniperjawadino - 14-09-20

سلام إخواني

هذا الكود الجميل يقوم بالكتابة في أداة تيكس بوكس
مع وضع إسم التيكسبوكس في متغير








[صورة مرفقة: 729856278.jpg]



ممكن أعرف لماذا هذا الكود شغال فقط عند وضع الأداة في حاوية مثل PANEL
لكن عند وضع التيكسبوكس على الفورم مباشرة
لا يشتغل

شكرا على التوضيح


RE: الكتابة في أداة تيكس بوكس برمجيا - Anas Mahmoud - 14-09-20

الكود يقوم بالبحث داخل كونترولات الفورم باستخدام For each

لكل كونترول P داخل الفورم لايقوم الكود باختبار p اذا كان التكست بوكس الذي نبحث عنه ام لا ، بل يقوم ايضا بالبحث داخل ب عن التكست بوكس الذي نريده

ربما عليك اختبار اولا اذا كان P.name تساوي "Textbox1" وعندها تخرج من For ايضا


RE: الكتابة في أداة تيكس بوكس برمجيا - Anas Mahmoud - 14-09-20

يمكنك استخدام الدالة التالية لاحضار اي كونترول من اسمه في اي كونتينر كان

كود :
   Function GetControl(Parent As Control, Name As String) As Control
       For Each c As Control In Parent.Controls
           If c.Name = Name Then Return c
           Dim found = GetControl(c, Name)
           If Not found Is Nothing Then Return found
       Next
       Return Nothing
   End Function

استخدامها 

كود :
     Dim txt1 As TextBox = GetControl(Me, "TextBox1")
       Dim txt2 As TextBox = GetControl(Me, "TextBox2")
       Dim txt3 As TextBox = GetControl(Me, "TextBox3")
       Dim txt4 As TextBox = GetControl(Me, "TextBox4")

       txt1.Text = "txt1"
       txt2.Text = "txt2"
       txt3.Text = "txt3"
       txt4.Text = "txt4"

[attachment=25670]
[attachment=25671]


RE: الكتابة في أداة تيكس بوكس برمجيا - sniperjawadino - 18-09-20

أخي Anas Mahmoud
شكرا على المساعدة
جزاك الله من علمه
تقييمك هو أقل شيئ في حقك


RE: الكتابة في أداة تيكس بوكس برمجيا - kiki - 18-09-20

عفواً اخى sniperjawadino
ما الفرق بين الكود التى تريد استخدامه عن الكود البسيط المباشر لاعطاء قيمة
اذا كان الكود الخاص بك والكود الخاص بالاخ Anas Mahmoud
كل ما تفعله هو كتابة اكثر من سطر وليس هذا فقط وايضاً عمل لود متكرر بسبب For
لتكتب بالنهاية
text_.text - "anything"
بينما لو كتبت
textbox1.text = "anything"
سيكون الناتج والمعنى واحد للمطلوب وايضاً سيتم تقليل اللود على البرنامج


RE: الكتابة في أداة تيكس بوكس برمجيا - Anas Mahmoud - 18-09-20

(18-09-20, 02:50 PM)kiki كتب : عفواً اخى sniperjawadino
ما الفرق بين الكود التى تريد استخدامه عن الكود البسيط المباشر لاعطاء قيمة
اذا كان الكود الخاص بك والكود الخاص بالاخ Anas Mahmoud
كل ما تفعله هو كتابة اكثر من سطر وليس هذا فقط وايضاً عمل لود متكرر بسبب For
لتكتب بالنهاية
text_.text - "anything"
بينما لو كتبت
textbox1.text = "anything"
سيكون الناتج والمعنى واحد للمطلوب وايضاً سيتم تقليل اللود على البرنامج

افترض اما حالتان : 

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

او انه ينشأ كونترولات وقت التشغيل ويريد الوصول اليها من اسمها

والله اعلم طبعا


RE: الكتابة في أداة تيكس بوكس برمجيا - sniperjawadino - 19-09-20

شكرا أخي kiki و الأخ anas على المتابعة

كما قال الأخ أنس هذه الطريقة أظنها تنفع كثيرا في بعض المشاريع
هذفها هو الوصول إلى كونترول و التعديل فيه دون معرفة إسمه مسبقا
بل يتم الكشف عن إسمه عند إستعمال البرنامج