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

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

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

دیدگاه ها: ارسال دیدگاه