منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : الحصول على إسم الفورم
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
ارغب فى الحصول على إسم كل فورم موجود فى المشروع 
هل من مساعدة ؟
(10-05-22, 02:45 PM)jemyx كتب : [ -> ]ارغب فى الحصول على إسم كل فورم موجود فى المشروع 
هل من مساعدة ؟

و عليكم السلام
تفضل
كود :
       Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
       Dim types As Type() = myAssembly.GetTypes()
       For Each myType As Object In types

           If myType.BaseType.FullName.ToString.ToUpper = "SYSTEM.WINDOWS.FORMS.FORM" Then
               MsgBox(myType.Name)
           End If
       Next
(10-05-22, 03:57 PM)trakktour كتب : [ -> ]
(10-05-22, 02:45 PM)jemyx كتب : [ -> ]ارغب فى الحصول على إسم كل فورم موجود فى المشروع 
هل من مساعدة ؟

و عليكم السلام
تفضل
كود :
       Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
       Dim types As Type() = myAssembly.GetTypes()
       For Each myType As Object In types

           If myType.BaseType.FullName.ToString.ToUpper = "SYSTEM.WINDOWS.FORMS.FORM" Then
               MsgBox(myType.Name)
           End If
       Next
اخى اشكرك على تعبك و مجهودك ولكن ليس هذا م اريدة 
اي فورم ابدأ فى العمل بها فى خانة text الخاصة ف الفورم اعطيها إسم وليكن مثلا إدارة بيانات العاملين
ارغب فى أخذ إسم كل فورم موجودة فى المشروع و وضعها ك item داخل combobox
(10-05-22, 05:07 PM)jemyx كتب : [ -> ]
(10-05-22, 03:57 PM)trakktour كتب : [ -> ]
(10-05-22, 02:45 PM)jemyx كتب : [ -> ]ارغب فى الحصول على إسم كل فورم موجود فى المشروع 
هل من مساعدة ؟

و عليكم السلام
تفضل
كود :
       Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
       Dim types As Type() = myAssembly.GetTypes()
       For Each myType As Object In types

           If myType.BaseType.FullName.ToString.ToUpper = "SYSTEM.WINDOWS.FORMS.FORM" Then
               MsgBox(myType.Name)
           End If
       Next
اخى اشكرك على تعبك و مجهودك ولكن ليس هذا م اريدة 
اي فورم ابدأ فى العمل بها فى خانة text الخاصة ف الفورم اعطيها إسم وليكن مثلا إدارة بيانات العاملين
ارغب فى أخذ إسم كل فورم موجودة فى المشروع و وضعها ك item داخل combobox
السلام عليكم و رحمة الله و بركاته
اخي الكريم هناك عدة طرق و كيفيات لذلك
مثلا ان تدخل اسماء كل الفورمات لديك في الكمبوبوكس تلقائيا اي عند فتح الفورم الرئيسية دون اي تدخل منك  كما اشار الاخ  tracktor قي رده
هذا مثال
PHP كود :
   Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
        Dim myAssembly 
As System.Reflection.Assembly System.Reflection.Assembly.GetExecutingAssembly()
 
       Dim types As Type() = myAssembly.GetTypes()
 
       Dim formList As New List(Of Type)
 
       For Each myForm In types
            If myForm
.BaseType.FullName "System.Windows.Forms.Form" AndAlso _
                myForm
.AssemblyQualifiedName <> Me.GetType.AssemblyQualifiedName Then
                ComboBox1
.Items.Add(myForm)
 
           End If
 
       Next
    End Sub
    Private Sub ComboBox1_SelectedIndexChanged
(ByVal sender As ObjectByVal e As System.EventArgsHandles ComboBox1.SelectedIndexChanged
        Dim idx 
As Integer ComboBox1.SelectedIndex
        Dim myform 
As Type DirectCast(ComboBox1.SelectedItemType)
 
       Dim frm As Form CType(System.Activator.CreateInstance(myform), Form)
 
       frm.Show()
 
   End Sub 
اما اذا كنت قد اضفت اسماء الفورمات يدويا ك كولكشن للكمبوبوكس  فرضا ان الفورم الرئيسبة form1 وليدك 2 فورم اخرتين form2 و form3 فسيكون الكود كمثال كما يلي
كود :
   Private Sub ComboBox2_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedIndexChanged
       Select Case (ComboBox2.SelectedItem.ToString)
           Case "form2"
               Form2.Show()
           Case "form3"
               Form3.Show()
       End Select

   End Sub
و اذا اردت اخفاء الفورم الرئيسية غتد ظهور احدى الفورمات الفرعية اضف Me.Hide() بعد End Select