09-04-15, 02:32 PM
09-04-15, 03:29 PM
لا افهم كيف يتم اضافة Form داخل Form اخر
ربما تقصد اداة TapContol ؟
ربما تقصد اداة TapContol ؟
09-04-15, 04:04 PM
عليك بتعريف متغير من النوع Form وليكن اسمه مثلا form2 ثم تقوم بضبط خاصية TopLevel وتجعل قيمتها تساوي False ثم تضيفه برمجيا الي الفورم الرئيسي وعليك ان لا تنسي ان تغلقه قبل اغلاق الفورم الرئيسي
الكود سيكون شكله كالأتي
لكن افضل الطرق هي ان تقوم ببناء فورم جديد علي حده إما عن طريق الوراثه او تضيفه بشكل عادي الي مشروعك ثم تغير في خصائصه و صفاته Property كما يحلو لك و أيضا يمكنك أن تضيف له ما شئت من احداث و خلافه ثم تضيفه برمجيا كما هو موضح في الكود اعلاه
و الكود التالي يوضح تفاصيل أكثر للإجابة علي سؤالك
الكود سيكون شكله كالأتي
كود :
Dim form2 as Form = New Form
form2.toplevel = False
' يمكنك ضبط المزيد من خصائص الفورم التاني هنا قبل اضافته الي الفورم الأول
me..controls.add(form2)
Form2.show()لكن افضل الطرق هي ان تقوم ببناء فورم جديد علي حده إما عن طريق الوراثه او تضيفه بشكل عادي الي مشروعك ثم تغير في خصائصه و صفاته Property كما يحلو لك و أيضا يمكنك أن تضيف له ما شئت من احداث و خلافه ثم تضيفه برمجيا كما هو موضح في الكود اعلاه
و الكود التالي يوضح تفاصيل أكثر للإجابة علي سؤالك
كود :
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.AutoScroll = True
Dim frm2 As Form = New Form()
AddHandler frm2.LocationChanged, AddressOf Me.Form2_LocationChanged
AddHandler frm2.SizeChanged, AddressOf Me.Form2_SizeChanged
frm2.TopLevel = False
Me.Controls.Add(frm2)
If frm2.Size.Width > Me.Size.Width Or frm2.Size.Height > Me.Size.Height Then
Me.SetAutoScrollMargin(frm2.Size.Width - Me.Size.Width, frm2.Size.Height - Me.Size.Height)
End If
frm2.Show()
End Sub
Private Sub Form2_LocationChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim f As Form = sender
Me.SetAutoScrollMargin(f.Location.X, f.Location.Y)
End Sub
Private Sub Form2_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim f As Form = sender
If f.Size.Width > Me.Size.Width Or f.Size.Height > Me.Size.Height Then
Me.SetAutoScrollMargin(f.Size.Width - Me.Size.Width, f.Size.Height - Me.Size.Height)
Else
Me.SetAutoScrollMargin(0, 0)
End If
End Sub
End Class10-04-15, 05:34 PM
اجابتك جميلة جدا silverlight
لاكن هناك طريقة اسهل وليس بها تعقيد ابدا
على حسب علمى
وهى اضافة اداة panal الى النموذج الرئيسى ثم تضع زر لفتح النموذج الضغير
ثم تكتب هذا الكود التالى داخل الزر
ملحوظة ضع اسم النموزج الذى تريد فتحة بدلا من formName
انا اسف لك اخى العزيز silverlight فلا تسئ الظن بى لاكن بعض المبتدئين لا يريدون الاكواد والاشياء المعقدة
فا البساطة فى الكود والطريقة شئ جميل بالنسبة لهم
لاكن هناك طريقة اسهل وليس بها تعقيد ابدا
على حسب علمى
وهى اضافة اداة panal الى النموذج الرئيسى ثم تضع زر لفتح النموذج الضغير
ثم تكتب هذا الكود التالى داخل الزر
PHP كود :
Dim f As New formName With {.TopLevel = False, .AutoSize = False}
f.Parent = Panel1
f.Show()
انا اسف لك اخى العزيز silverlight فلا تسئ الظن بى لاكن بعض المبتدئين لا يريدون الاكواد والاشياء المعقدة
فا البساطة فى الكود والطريقة شئ جميل بالنسبة لهم
10-04-15, 07:28 PM
لا يوجد أي داعي للإعتذار أبدا لأن الهدف هنا هو مشاركة الافكار مع بعضنا البعض حتي تعم الفائدة علي الجميع و الكود المكتوب الهدف منه ليس |إضافة فورم الي فورم فقط لكن أيضا توضيح كيف يمكن اضافة بعض Handlers برمجيا حتي يمكن الاستفادة من الفورم المضاف بشكل أكبر
أيضا لي هدف شخصي من التوسع في كتابة الكود و هو ان تجعل من يسأل سؤالا يبحث اكثر و يدرس أكثر و من ثم سوف يستفيد أكثر
اي مبرمج لديه خبرة معقولة يستطيع ان يكتب الكود كاملا لمن سأل السؤال ...وهننا لن يستفيد السائل كثيرا .
أشكرك كثيرا يا أحمد علي ردك تقبل تحياتي
أيضا لي هدف شخصي من التوسع في كتابة الكود و هو ان تجعل من يسأل سؤالا يبحث اكثر و يدرس أكثر و من ثم سوف يستفيد أكثر
اي مبرمج لديه خبرة معقولة يستطيع ان يكتب الكود كاملا لمن سأل السؤال ...وهننا لن يستفيد السائل كثيرا .
أشكرك كثيرا يا أحمد علي ردك تقبل تحياتي
11-04-15, 08:37 PM
شكرا جزيلا لكم
بالتوفيق للجميع
بالتوفيق للجميع
15-08-18, 09:31 PM
اخي العزيز اجابتك مفيدة جدا لكنك نسيت ان تضيف كود يقوم بإزالة محتوى البانل السابق وعرض الجديد لانه يقوم بعرض الفورم داخل البانل فوق محتواه الموجود مسبقاً ..
09-04-21, 05:42 PM
اجل اخواني الاعزاء شكرا لمجهودكم لتبادل المعلومه ولكن بقي ان تضعوا الزهور في المزهريه وهي كود اغلاق الفورم السابق داخل البانل عند الضغط على زر فورم اخر ليظهر محتواه مكان الفورم السابق
اسف جدا على تطفلي اخواني الاعزاء وممكن تعدلوا الكود ويصير بها الطريقه علاشان يشتغل وما يعطلش حد ويصير يفتح ويغلق الفورم بطريقه مريحه جدا
انا جربته وشتغل واسف جدا مره اخرى على تدخلي في تعديل الكود ولكن من اجل ان تكتمل فائدة الكود ويصير بشكله الكامل
اسف جدا على تطفلي اخواني الاعزاء وممكن تعدلوا الكود ويصير بها الطريقه علاشان يشتغل وما يعطلش حد ويصير يفتح ويغلق الفورم بطريقه مريحه جدا
كود :
Me.Panel2.Controls.Clear()
Dim f As New Form3 With {.TopLevel = False, .AutoSize = False}
f.Parent = Panel2
f.Show()09-04-21, 06:55 PM
انسخ هذا الكود الى الفورم
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
IsMdiContainer = True
Dim form As New Form
form.MdiParent = Me
form.Show()
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
IsMdiContainer = True
Dim form As New Form
form.MdiParent = Me
form.Show()
End Sub