PDA

View Full Version : سوال: باز کردن فرمی که کاربر اسم اونو میگه :



abook.100
شنبه 05 فروردین 1391, 03:25 صبح
سلام به همه :
سال نو مبارک .انشاالله که سال خوبی برای همه برنامه نویس ها باشه .

یه سوال جالب :
فرض کنید تو یه برنامه 10 تا فرم داریم و اسم هاشون
Form1 , Form2 , Form3 , …
کاربر هم اسم این فرم ها رو میدونه . نکته اینه که قرار نیست به ازای هر فرم یک دکمه باشه ،تا با اون دکمه فرم مربوطه باز بشه . بلکه قراره کاربر اسم یکی ازفرم ها رو تو TextBox بنویسه و بعد دکمه Show رو میزنه .

حالا برنامه چطور تشخیص بده که کدوم فرم رو باز کنه ؟
یعنی تو دکمه Show چی بنویسم ؟

mostafaaa
شنبه 05 فروردین 1391, 08:03 صبح
سلام
Imports System.Reflection
Function GetForm(ByVal frmName As String) As Form
Dim frm As Form = DirectCast(Activator.CreateInstance(Type.GetType([Assembly].GetEntryAssembly.GetName.Name & "." & frmName)), Form)
Return frm
End Function

abook.100
شنبه 05 فروردین 1391, 15:03 عصر
سلام
Imports System.Reflection
Function GetForm(ByVal frmName As String) As Form
Dim frm As Form = DirectCast(Activator.CreateInstance(Type.GetType([Assembly].GetEntryAssembly.GetName.Name & "." & frmName)), Form)
Return frm
End Function

سلام آقا مصطفی :
دستت درد نکه ،
مشکلم همین بود که نمی دونستم ازچه تابعی باید استفاده کنم تا خاصیت String رو به Form تبدیل کنم.
فقط الان یه مشکل کوچولو هست اونم اینه که با زدن دکمهShow چند تا از همون فرم اجرا میشه در صورتی که باید فقط یکی باز بشه.

فرید نجفلو
شنبه 05 فروردین 1391, 15:36 عصر
اینو تست کن:

Function GetForm(ByVal frmName As String) As Form

Private Sub TextBox1_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.Enter Then
Dim frm = GetForm(TextBox1.Text)
frm.Show()
frm.Activate()
End If
End Sub
Function GetForm(ByVal frmName As String) As Form
For Each Existfrm As Form In Application.OpenForms
If Existfrm.Name = frmName Then
Return Existfrm
End If
Next
Dim Newfrm As Form = DirectCast(Activator.CreateInstance(Type.GetType([Assembly].GetEntryAssembly.GetName.Name & "." & frmName)), Form)
Newfrm.Name = frmName
Return Newfrm
End Function
End Function

mostafaaa
شنبه 05 فروردین 1391, 15:37 عصر
سلام
مشکل از این فانکشن نیست !!
کد های خودتون رو دقیق تر بررسی کنید!! احتمالا توی لوپی یا حلقه چند بار فراخوانیش میکنید.

abook.100
سه شنبه 08 فروردین 1391, 07:18 صبح
سلام آقاي Farid.N
با كد شما مشكل دوم هم برطرف شد
بينهايت سپاسگذارم.
كاش همه سوالات به همين راحتي به جواب برسن.