PDA

View Full Version : سوال: چگونه می توان یک فرم را با در اختیار داشتن نام فرم باز کرد؟



مهدی د
جمعه 08 آذر 1392, 11:17 صبح
سلام
چگونه می توان یک فرم را با در اختیار داشتن نام فرم باز کرد؟ توضیح اینکه مقصود با استفاده از کد

form1.Show()

نمی باشد. بلکه چیزی شبیه این



Dim namefrm As String
namefrm = "form1"
Forms(namefrm).Show()

می باشد.ولی متاسفانه کامپایلر به خط سوم ایراد می گیرد! لطفا اگر دوستان روش این کار را می دانند لطف فرموده و در اختیار بگذارند.
ممنون

sina.lor.boy
جمعه 08 آذر 1392, 13:10 عصر
سلام دوست عزیز خیلی سادست :چشمک:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ADDFORM()
End Sub

Function ADDFORM()
Dim formnew As New Form()
formnew.Show()
formnew.Text = "sina"
Return True
End Function

sina.lor.boy
یک شنبه 10 آذر 1392, 19:18 عصر
مشکلی نداری دیگه؟

eshaghrahimy
یک شنبه 10 آذر 1392, 20:38 عصر
Dim frm As New Form
Dim formName As String = "Form1"

formName = [Assembly].GetEntryAssembly.GetName.Name & "." & formName
frm = DirectCast([Assembly].GetEntryAssembly.CreateInstance(formName), Form)
frm.Show()

eshaghrahimy
یک شنبه 10 آذر 1392, 20:38 عصر
Public Function GetForm(ByVal Formname As String) As Form
Dim t As Type = Type.GetType(Formname) ', True, True)
If t Is Nothing Then
Dim Fullname As String = Application.ProductName & "." & Formname
t = Type.GetType(Fullname, True, True)
End If
Return CType(Activator.CreateInstance(t), Form)

End Function

مهدی د
دوشنبه 11 آذر 1392, 18:56 عصر
سلام
تشکر نتیجه بخش بود ضمنا کد زیر را نیز برای تکمیل اضافه کردم (
برای اینکه یک فرم دوبار باز نشود )


ForEach Existfrm AsFormInApplication.OpenForms
If Existfrm.Name = LVB.SelectedItems.Item(0).Tag.ToString Then

Existfrm.Activate()
Exit Sub

EndIf

Next