یادداشت های یک برنامه نویس
دوستدار فرهنگ و هنر کهن ایرانی

دسترسی به کنترل ها با استفاده از رشته


پرسش امنیتی

مقدار 9 به علاوه 12 چقدر میشود؟

دیدگاه شما پس از تایید نمایش داده خواهد شد.

میخواهیم با استفاده از نام یک کنترل به صورت رشته، به آن کنترل به صورت داینامیک دسترسی پیدا کنیم و از آن استفاده کنیم. برای مثال یک کنترل از نوع فرم را صدا زنی و نمایش می دهیم:

Dim ProjAndForm = "WindowsApplication1.Form2"  '' String Of Your Project And Form Name
Dim objType As Type = Type.[GetType](ProjAndForm) '' Get Type Of your string
Dim objForm As Control = DirectCast(Activator.CreateInstance(objType), Control) '' Convert Type to Control and now you can use this Control
objForm.Show()  

صدا زدن فرم به همراه فرستادن یک ورودی به آن:

Dim path As String = System.Reflection.Assembly.GetExecutingAssembly().Location
Dim ass As Reflection.Assembly = Reflection.Assembly.LoadFrom(path)
Dim ProjAndForm = "WindowsApplication1.Form3"
Dim FormInstanceType = ass.GetType(ProjAndForm)
Dim objForm = CType(Activator.CreateInstance(FormInstanceType, New Object() {"hajivalie.ir"}), Form)
objForm.Show()

توضیحات بیشتر و دانلود نمونه کد در CodeProject