PDA

View Full Version : دسترسی به کنترل های ساخته شده در زمان اجرا



hosein320
چهارشنبه 16 اسفند 1391, 21:15 عصر
سلام
اگه من چند کنترل از به این شکل ساخته باشم
dim btn as new button
btm.name="btn"+text1.text
حالا اگه بخوام به یکیشون اشاره کنم که بقیه اسم کنترل رو از یه متغیر دیگه بگیره
باید چه کرد:متفکر:

JaVa
پنج شنبه 17 اسفند 1391, 13:53 عصر
سلام.

Public Class Form1
Dim btn As New Button

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
btn.Show()
btn.Text = "Hello World"
End Sub
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show("Hello World")
End Sub

End Class

hosein320
پنج شنبه 17 اسفند 1391, 14:27 عصر
مثل اینکه درست توضیح ندادم

به طور مثال
من تو یه لیست باکس سه تا آیتم دارم
حالا سه تا باتن تعریف میکنم که ادامه اسمشون رو از لیست باکس میگیرن
for i = 0 to 2
dim btn as new button
btn.name="btn" +list1.items.item(i)
next
حالا من اگه بخوام به دکمه ای اشاره کنم که ادامه اسمش رو از لیست میگیره باید چه کنم
مثالا از آیتم دومی
:متفکر:

xxnagin
پنج شنبه 17 اسفند 1391, 15:09 عصر
سلام
خوب از selectindex استفاده میشه دیگه
که از 0 شروع میشه یعنی ایتم اول 0 و ایتم دوم 1 ایتم سوم 2

hosein320
پنج شنبه 17 اسفند 1391, 15:30 عصر
متوجه نشدین دوست عزیز
مثلا من ادامه اسم رو میزارم تو یه تکست باکس برای فراخوانی
مثلا میخوام بگم باتنی که اسمش مساوی باشه با "btn"+textbox.text
متنش نمایش داده بشه!

xxnagin
پنج شنبه 17 اسفند 1391, 15:43 عصر
سورس رو بذار

hosein320
پنج شنبه 17 اسفند 1391, 17:47 عصر
سرس رو نمیتونم بزارم
کدوم قسمتش نامفهوم بود:متفکر:

امین مستانی
پنج شنبه 17 اسفند 1391, 19:03 عصر
سلام

MsgBox(Me.Controls("Btn" & TextBox1.Text).Text)


موفق باشید

hosein320
پنج شنبه 17 اسفند 1391, 22:44 عصر
ممنون دوست عزیز
حالا یه مشکل دیگه
از کجا متوجه میشه که نوع کنترل چیه
من برای یوزر کنترلی که ساختم میخواستم!!!
ولی خصوصیتاش و نمیشناسه:(

hosein320
جمعه 18 اسفند 1391, 20:05 عصر
کسی نیدونه باید چکارش کرد:ناراحت:

امین مستانی
جمعه 18 اسفند 1391, 23:54 عصر
سلام مجدد

اگر خصوصیات یوزر کنترل رو درست تعریف کرده باشید میتونید بهش دسترسی داشته باشید.

http://msdn.microsoft.com/en-us/library/c316f119(v=vs.71).aspx

موفق باشید

hosein320
شنبه 19 اسفند 1391, 10:44 صبح
منظورم اینه که میخوام به یکی از توابع داخل یوزر کنترل دسترسی داشته باشم
اینجوری فقط خصوصیت های معمول کنترل ها رو میشناسه

امین مستانی
شنبه 19 اسفند 1391, 13:34 عصر
سلام

برای این منظور باید تابع رو به صورت Public تعریف کنید بعد اینطور فراخوانی کنید :


Dim NewControl As New UserControlName
Me.Controls.Add(NewControl)
NewControl.FunctionName()


موفق باشید

hosein320
شنبه 19 اسفند 1391, 14:21 عصر
سلام
اینجوری فقط یه کنترل میسازه
من میخوام به کنترل ها بر اساس اسمشون دسترسی داشته باشم
نه اینکه....:ناراحت::ناراحت:

امین مستانی
شنبه 19 اسفند 1391, 17:39 عصر
سلام مجدد

شاید لازم باشه شما توضیح بیشتری بدید یا قصدتون از این کار رو بگین شاید راه حل بهتری وجود داشته باشه .

شما هر چند تا که ساختید میتونید اینطور اون ها رو صدا بزنید به شرطی که تابع در UserControl رو بصورت Public تعریف کرده باشید :


UserControlName.FunctionName()


موفق باشید

فرید نجفلو
شنبه 19 اسفند 1391, 23:04 عصر
ممنون دوست عزیز
حالا یه مشکل دیگه
از کجا متوجه میشه که نوع کنترل چیه
من برای یوزر کنترلی که ساختم میخواستم!!!
ولی خصوصیتاش و نمیشناسه:(

از CType استفاده کنید:

ِDim Ctrl = CType( Me.Controls("Btn" & TextBox1.Text),Button)