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

نسخة كاملة : التحقق من فورم إذا كان موجود
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم .اخواني لو سمحتو كيف يمكن عمل كود تحقق من فورم مثلا form1 موجود اصلا بالمشروع ام مو موجود بارك الله فيكم
و عليكم السلام

كود :
       Dim myAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
       Dim types As Type() = myAssembly.GetTypes()
       For Each t As Type In types
           If UCase(t.BaseType.ToString) = "SYSTEM.WINDOWS.FORMS.FORM" Then
               If t.Name = "Form1" Then
                   MessageBox.Show(t.Name)
                   Exit For
               End If
           End If
       Next
شكرا اخي محمد لكن انا لا اريد اظهار اسم الفورم اريد فحص اذا كان مثلا الفورم1 موجود ام غير موجود
(30-09-20, 05:50 AM)محمد خيري كتب : [ -> ]شكرا اخي محمد لكن انا لا اريد اظهار اسم الفورم اريد فحص اذا كان مثلا الفورم1 موجود ام غير موجود

عفوا أخي محمد ظهور الاسم يعني ان الفورم موجود
اكتب الكود المطلوب عوضا عن الرسالة في حال تحقق شرط وجود الفورم
كود :
If Application.OpenForms().OfType(Of Form2).Any Then
 MessageBox.Show("Opened")
Else
 Dim f2 As New Form2
 f2.Text = "form2"
 f2.Show()
End If


اكيد انت تقصد هل هو مفتوح ام لا
شكرا اخي لكن انا ما اقصد مفتوح ام لا اقصد موجود ام لا
اخي محمد عنان لو سمحت الكود لما افتح الفورم لود تظهر لي رسالة خطا
objet reference not set to an instance of an object
السّلام عليكم و رحمة الله و بركاته
بعد شكر إخواني الأفاضل ممن سبقوني بالمشاركة
بعد التجربة .. هذا الكود يعمل بطريقة جيدة أخي الكريم
كود :
  Public Function Get_Name_Form(ByVal Form_Name As String) As Form
       Try
           Dim Frm_Type = Reflection.Assembly.GetEntryAssembly.GetExportedTypes.FirstOrDefault(Function(x) x.Name = Form_Name)
           Dim Return_Form = TryCast(Activator.CreateInstance(Frm_Type), Form)
           Return TryCast(Return_Form, Form)
       Catch ex As Exception
           Return Nothing
       End Try
   End Function

بالفورم لود ..
كود :
   Dim MyForm = Get_Name_Form("Form1")
       If MyForm IsNot Nothing Then
           MessageBox.Show("الفورم 1 موجود")
       Else
           MessageBox.Show("الفورم 1 غير موجود")
       End If

تحياتي