تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة فى اظهار فورم داخل فورم اخر باداة Panel
#1
عندى مشكلة وهى انني كنت اعمل فورم اضافة مرضي وبه زر بحث وعند اختيار مريض من البحث للتعديل يتم الرجوع الى الفورم بكامل البيانات للتعديل
المشكلة بقا دلوقتي لما ضيفت Panel لظهور الفورم داخل فورم اخر 
فعند اختيار البحث لا يمكن اظهار البيانات
ده كود الاختيار الموجود فى الفورم الخاص بالبحث
كود :
Private Sub DataGridView1_Click(sender As Object, e As EventArgs) Handles DataGridView1.Click
       If DataGridView1(0, DataGridView1.CurrentRow.Index).Selected = True Then
           LAB_ADD.SHOW_DETAILES(DataGridView1.CurrentRow.Cells(1).Value)
           LAB_ADD.EDITBUTTON.Enabled = True
           LAB_ADD.DELETBUTTON.Enabled = True
           LAB_ADD.SAVEBUTTON.Enabled = False
           Me.Close()
       End If

   End Sub

وده كود الظهور الموجود فى الفورم الاصلي LAB_ADD
كود :
Sub SHOW_DETAILES(ID_)
       Try
           Dim DT As New DataTable
           Dim DA As New SqlClient.SqlDataAdapter("SELECT * FROM LAB_ADD WHERE LAB_CODE = '" & ID_ & "'", SqlConn)
           DA.Fill(DT)
           If DT.Rows.Count = 0 Then
               MessageBox.Show("التحليل غير موجود برجاء التأكد من تواجد التحليل !!", "رسالة تنبيه", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
           Else
               Dim SHOW_ As Integer = BindingContext(DT).Position
               LAB_CODE.Text = DT.Rows(SHOW_).Item("BORG_CODE")
               LAB_NAME.Text = DT.Rows(SHOW_).Item("BORG_NAME")
               LAB_LAB.Text = DT.Rows(SHOW_).Item("BORG_LAB")
               LAB_EG.Text = DT.Rows(SHOW_).Item("BORG_EG")
               EDITBUTTON.Enabled = True
               DELETBUTTON.Enabled = True
               SAVEBUTTON.Enabled = False
           End If
       Catch ex As Exception

       End Try
   End Sub


وده كود لظهور الفورم LAB_ADD  داخل فورم SELECT_LAB

كود :
Private Sub LABBUTTON_Click(sender As Object, e As EventArgs) Handles LABBUTTON.Click
       Me.Panel1.Controls.Clear()
        Dim f As New LAB_ADD With {.TopLevel = False, .AutoSize = False}
        f.Parent = Panel1
        f.Show()
    End Sub


الخطأ فين لو سمحتوا عشان يظهر داخل الفورم الخاص ب SELECT_LAB
الرد }}}
تم الشكر بواسطة:
#2
لم ادقق بكامل الكود لكن اسمح لي اقول رايي وهو الافضل استخدام Usercontrol اذا كنت تود احتضانها ضمن بانل بالفورم الرئيسية.
الرد }}}
#3
مستوى Formsاعلى من مستوى Panels ولهذا الفيجوال لا يسمح باحتضان Form داخل Panel
وعليه عليك ان تستخدم UserControl كما اشار الاخ سعود
الرد }}}
تم الشكر بواسطة: سعود , ابراهيم ايبو , asemshahen5
#4
(08-08-19, 10:06 AM)viv كتب : مستوى Formsاعلى من مستوى Panels ولهذا الفيجوال لا يسمح باحتضان Form داخل Panel
وعليه عليك ان تستخدم UserControl كما اشار الاخ سعود

اشكركم جميعا ولكني مبتديء فى الفيجوال بيسك
ثانيا كنت عايز اعرف ازاى هعرض بعد كدا البحث عند الأختيار

(08-08-19, 08:54 AM)سعود كتب : لم ادقق بكامل الكود لكن اسمح لي اقول رايي وهو الافضل استخدام Usercontrol اذا كنت تود احتضانها ضمن بانل بالفورم الرئيسية.

شكرا اخي ولكني احتاج لتعديل على الكود الخاص بي حتي لا اعيد التصميم من جديد
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#5
عطل الـ Border Style
وروح لملف التصميم للفورم المطلوب احتضانه وغير نوعه من Form الى UserControl

 Inherits System.Windows.Forms.Form

الى


 Inherits System.Windows.Forms.UserControl

لا تنسى تاخذ نسخة احتياطية للمشروع هاااااااااااا.Smile
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , viv , asemshahen5
#6
(08-08-19, 02:29 PM)سعود كتب : عطل الـ Border Style
وروح لملف التصميم للفورم المطلوب احتضانه وغير نوعه من Form الى UserControl

 Inherits System.Windows.Forms.Form

الى


 Inherits System.Windows.Forms.UserControl

لا تنسى تاخذ نسخة احتياطية للمشروع هاااااااااااا.Smile

طيب مفيش حل غير انى احوله ل  UserControl
الرد }}}
تم الشكر بواسطة: asemshahen5
#7
إقتباس :طيب مفيش حل غير انى احوله ل  UserControl
 لا اعلم بصراحة ان كانت هناك حلول اخرى.
لكن ماهي المشكلة التي تحدث عند تطبيق التغيير.
الرد }}}
تم الشكر بواسطة: ابراهيم ايبو , asemshahen5
#8
PHP كود :
   Dim f As New Form()
 
   Private Sub Button2_Click(sender As ObjectAs EventArgsHandles Button2.Click
        f
.TopLevel False
        f
.FormBorderStyle Windows.Forms.FormBorderStyle.Sizable
        f
.Size = New System.Drawing.Size(200150)
 
       f.Location = New System.Drawing.Point(2020)
 
       f.WindowState FormWindowState.Normal
        f
.Visible False
        Panel1
.Controls.Add(f)
 
       If f.Visible False Then f.Visible True Else f.Visible False
    End Sub 
الرد }}}
تم الشكر بواسطة: viv , ابراهيم ايبو
#9
إقتباس :  f.TopLevel False

احيانا هناك امور صغيرة لا ننتبه لها
لم اكن اتصور ان الفيجوالستوديو يمكنه ان يضع فورم على فورم أخر .

عمل ايضا حتى بواسطة Show بعد التخلص من قصة الـ Level

كود :
 Dim f As New Form2
       f.TopLevel = False
       f.Parent = Panel1
       f.Show()
   
الرد }}}
تم الشكر بواسطة: asemshahen5 , ابراهيم ايبو
#10
(09-08-19, 11:29 AM)asemshahen5 كتب :
PHP كود :
   Dim f As New Form()
 
   Private Sub Button2_Click(sender As ObjectAs EventArgsHandles Button2.Click
        f
.TopLevel False
        f
.FormBorderStyle Windows.Forms.FormBorderStyle.Sizable
        f
.Size = New System.Drawing.Size(200150)
 
       f.Location = New System.Drawing.Point(2020)
 
       f.WindowState FormWindowState.Normal
        f
.Visible False
        Panel1
.Controls.Add(f)
 
       If f.Visible False Then f.Visible True Else f.Visible False
    End Sub 


اعذرني اخى مش فاهم فانا مبتديء في الفيجوال استوديو


(09-08-19, 11:57 AM)viv كتب :
إقتباس :  f.TopLevel False

احيانا هناك امور صغيرة لا ننتبه لها
لم اكن اتصور ان الفيجوالستوديو يمكنه ان يضع فورم على فورم أخر .

عمل ايضا حتى بواسطة Show بعد التخلص من قصة الـ Level

كود :
 Dim f As New Form2
       f.TopLevel = False
       f.Parent = Panel1
       f.Show()

مش فاهم حاجه ممكن تشرحلى اعمل يه بالكود ده
الرد }}}



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم