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

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

المطلوب تحويل ال text1 ل texti

اي حرف الـ i هو متحول

يعني مثلا
عندما اعطيه امر ان ال i=1000

يعطي امر باظهار تكست 1000

و كل ذلك بسطر واحد عوضا عن الف سطر
السلام عليكم

- ضع هذا الكود في زر :

كود :
Dim Ctrl As Control
Dim I As Integer

I = 1000

For Each Ctrl In Controls
    If TypeOf Ctrl Is TextBox And Ctrl.Name = "Text" & I Then
       MsgBox Ctrl.Text
       Exit Sub
    End If
Next

- تحياتي .
السلام عليكم...

يمكنك الوصول إلى المكونات بالاسم (كـ String) عن طريق الخاصية Controls التابعة للـ Form. مثلاً:
كود :
I = 1000

MsgBox Me.Controls([color=#800080]"Text" & CStr(I)[/color]).Text

و إذا كان المكون جزءاً من مصفوفة مكونات (Control Array) فإنه يمكن الوصول إليه بتحديد رقمه في المصفوفة (الـ Index) بعد قوس الخاصية Controls. مثلاً إذا كانت لدينا مصفوفة مكونات مربعات نص اسمها txtMyData1 تصم 10 مربعات (0 - 9) و مصفوفة مكونات أخرى باسم txtMyData100 و بها 20 مربع نص (0 - 19) فإنه يمكننا الوصول إلى مربع النص رقم 12 في المصفوفة الثانية txtMyData100 كالتالي:
كود :
I = 100
S = 12

MsgBox Me.Controls([color=#800080]"txtMyData" & CStr(I)[/color])[color=#0000CD](S)[/color].Text

نرجو الاستفادة و السلام.
asto كتب :السلام عليكم

المطلوب تحويل ال text1 ل texti

اي حرف الـ i هو متحول

يعني مثلا
عندما اعطيه امر ان ال i=1000

يعطي امر باظهار تكست 1000

و كل ذلك بسطر واحد عوضا عن الف سطر
اخي العزيز يمكنك عمل ذلك عن طريق عمل مصفوفة من التيكست بوكس والتي تدعى (Control Array) وعن طريق خاصية الIndex يمكنك الوصول الى اي تيكست بوكس تريد
ويمكنك عمل المصفوفة عن طريق اضافة تيكست بوكس للفورم ثم انسخ هذه التيكست بوكس واعمل لها لصق على نفس الصفحة ستظهر رسالة تسئلك بهل تريد عمل مصفوفة من هذه الادات فقط اجب بنعم في هذه الحالة سوف يكون لديك تيكس بوكس عدد 2 يحملون نفس الاسم ولكن يختلفون في الرقم الموجود بالخاصية Index وبتكرار هذه العملية تستطيع الحصول على مصفوفة من التيكست بوكس بالعدد الذي تريده وللوصول الى اي تيكست بوكس تريد ماعليك الى استدعائها بالطريقة التالية
كود :
dim I as integer
I=3
text(I).text="AAAA"
VB_Coder كتب :السلام عليكم

- ضع هذا الكود في زر :

كود :
Dim Ctrl As Control
Dim I As Integer

I = 1000

For Each Ctrl In Controls
    If TypeOf Ctrl Is TextBox And Ctrl.Name = "Text" & I Then
       MsgBox Ctrl.Text
       Exit Sub
    End If
Next

- تحياتي .

بس انا اقصد ال visible للتكست المختار هي كانت false اريد جعلها true
السلام عليكم

- إستخدم الكود الرائع لأخي ناجي إبراهيم :
كود :
Private Sub Command1_Click()

Dim I As Integer

I = 1000

Controls("Text" & CStr(I)).Visible = True
MsgBox Me.Controls("Text" & CStr(I)).Text

End Sub

- تحياتي .
[b][SIZE=5][SIZE=4]السلام عليكم
حسب ما فهمت من موضوعك أنك تريد أن تظهر textbox معين بإعطاء رقمه في أداة نص أخرى، وكلما غيرت الرقم يظهر فقط textbox المطلوب ويختفي الذي كان قد ظهر قبله، فإذا كان الحال كذلك فأقترح عليك أن تضع على الفورم مجموعة من أدوات النص Text2(0) ,text2(1),text2(3) اجعل الخاصية لهذه الأدوات visible=False وضع زر Command1 وأداة TextBox1لإدخال الرقم وتكتب هذا الكود المبسط جدا

كود :
[align=left][SIZE=4]Dim I, a

Private Sub Command1_Click()

Text2(a).Visible = False  'هذا لإخفاء التكست الظاهر
I = Val(Text1) 'لإدخال رقم التكست الذي تريد إظهاره

    Text2(I).Visible = True   '
         Text2(I) = I  'لإظهار رقم التكست الذي طلبته

a = Val(Text2(I)) ' حفظ رقم التكست الظاهر
End Sub[/SIZE][/SIZE][/SIZE][/b]
[/align]