منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الكتابة في أداة تيكس بوكس برمجيا
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
سلام إخواني

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








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



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

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

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

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

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

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

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

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

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

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