الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

غلق فورم داخل panel وفتح فورم اخري داخل نفس panel

بدأه كارم سامي في 6 مارس 2014 · 3 رد · 1,287 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

post-235772-0-40948600-1394061912.png

 

اذا كان عندي فورم 1 وهي اكبر فورم ( محتوياتها btn1 و panel1 ) عن طريق هذا الكود اقوم بتحميل فورم 2 داخل panel1 وهذا يعمل جيداً

JSS_SubH_Settings JE_JSS_SubH_Settings = new JSS_SubH_Settings();
            JE_JSS_SubH_Settings.FormBorderStyle = FormBorderStyle.None;
            JE_JSS_SubH_Settings.TopLevel = false;
            JE_JSS_SubH_Settings.AutoScroll = true;
            this.panel1.Controls.Clear();
            this.panel1.Controls.Add(JE_JSS_SubH_Settings);
            JE_JSS_SubH_Settings.Show();

ما اريده الأن ان بالضغط علي btn2 الموجود داخل form2 التي تم تحميلها ان تُغلق هذه الفورم form2 ويتم فتح مكانها في نفس panel1 فورم جديدة وليكن form 3

 

 

post-235772-0-40948600-1394061912.png

#2

وعليكم السلام ورحمة الله.

أخي الكريم، في الحالات التي يكون فيها تخاطب بهذا الشكل، يفضل استخدام الأحداث events.

مثلاً ضمن الـ Form2 نعرف الحدث Button2Clicked، ثم نقوم برفع (إشعال) هذا الحدث بمجرد الضغط على الزر button2.

 

الأن بعد تعريف object من نوع Form2 ضمن الواجهة الأساسية نقوم بمعالجة الحدث Button2Clicked. ونقوم بكتابة ما نريد هناك.

 

ربما يكون الواقع العملي افضل. لذلك تفضل بقبول المثال المرفق الصغير.

 

All the best...

FormsCalling.rar

1

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#3

ايضا يمكنك عمل Method   فى فورم 1ويكون Public Static  حتى يتم الوصول اليه من خلال اى فورم اخر لاضافة فورم داخل البانيل

 public static void AddForm( Form f1,Form1 f2)
        {

            f1.TopLevel = false;
            f2.panel1.Controls.Clear();
            f2.panel1.Controls.Add(f1);
            f1.Show();

        }

هكذا يتم استدعاءها

 private void button1_Click(object sender, EventArgs e)
        {
          
            AddForm(new Form2(),Form1.myform);

        }

لاحظ الباراميتر الثانى فى الميثود هو ايضا static  ةيمثل فورم1 لا يمكن التعامل مع instance  من خلال static method

فنعرف static variable  يشير الى فورم1

namespace PanelForms
{
    public partial class Form1 : Form
    {
        public static Form1 myform;
        public Form1()
        {
            myform = this;
            InitializeComponent();
        }

الميثود AddForm  يمكنك استدعاءها داخل اى فورم اخر وتمرير اى فورم تريده لاضافته فى البانيل للفورم1

PanelForms.rar

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#4

شكراً جزيلاً اخواني الكرام , هذا ما اردته بالضبط .. الطريقتين فعالتين ويعملان بصورة جيداً ..

 

بارك الله فيكم دائماً ماتنقذوني ..

 

وبارك الله في جميع الاخوة الاعضاء والاخوة المشرفين ب البرمجة على Microsoft .NET Platform دائماً ما يكون اجابتكم وافية وسريعة وعطاءكم مستمر وبدون مقابل

مواضيع مشابهة