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

نسخة كاملة : التحكم بادوات usercontrol1 من خلال usercontrol2
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
اخوتي الاعزاء لدي مشكلة وهي عند استخدام الكود 
كود :
sales ss = new sales();
  ss.panel1.Visible = false;
لكي اقوم باخفاء البنل الموجود في usercontrol1  من خلال بوتون موجود في usercontrol2 علما انه public  panel1  
كما اني حاول عمل اني حاول محاولة اخرى ولم تنجح وهي
كود :
public void toolStripClick(object sender, EventArgs e)
       {
           panel1.Visible = false;
       }

وضعته في ال usercontrol1 
ووضعت الزر في usercontrol2
كود :
sales ss = new sales();

           ss.Click += new EventHandler(ss.toolStripClick);
وايضا لم ينجح ارجو المساعدة
شكرا لك اخي العزيز لكن انا محتاج المثال على نموذج سي شارب


مع الشكر Heart Heart
السلام عليكم

بارك الله بجهودك انا استخدم مشروع فيه يوزر كنترول ووضع فيه بنل لكي احمل فيه يوزركنترول فرعي لكن لم يعمل معي ولا اعرف السبب 
علما اني لم اضع يوزر كونترول في الفورم انما استخدمت البنل لتحميل اليوزر كنترول
ولم يعمل معي اي حدث من الاحداث
 التيكست او اخفاء البنل او حدث الزر
مع الشكر
كود :
sales ss = new sales();
ss.account_mineTX = false;


كود :
 panel1.Visible = true;
                   //this.Parent.Controls.Remove(this);
                   this.panel1.Controls.Clear();
                   this.panel1.Controls.Add(AA);
(10-04-21, 12:06 PM)رسول555 كتب : [ -> ]السلام عليكم

بارك الله بجهودك انا استخدم مشروع فيه يوزر كنترول ووضع فيه بنل لكي احمل فيه يوزركنترول فرعي لكن لم يعمل معي ولا اعرف السبب 
علما اني لم اضع يوزر كونترول في الفورم انما استخدمت البنل لتحميل اليوزر كنترول
ولم يعمل معي اي حدث من الاحداث
 التيكست او اخفاء البنل او حدث الزر
مع الشكر
كود :
sales ss = new sales();
ss.account_mineTX = false;


كود :
 panel1.Visible = true;
                   //this.Parent.Controls.Remove(this);
                   this.panel1.Controls.Clear();
                   this.panel1.Controls.Add(AA);



؟؟؟؟؟؟؟؟؟؟؟؟
ضع مثال به شرح ما تريد ليتم التعديل عليه باذن الله تعالى .
وعليكم السلام ورحمة الله وبركاته

لماذا لا تجرب أن تنشئ طريقة Method تقوم بذلك؟
السلام عليكم ورحمة الله وبركاته 

حسب ما فهمت انك تريد ان تتحكم في كونترول من خلال كونترول اخر 

هناك نقطة محورية يجب معرفتها هنا ، انه انت من يحدد لكل كنترول ما يمكنه فعله ، لذلك لايجب ابدا تعريف البانل داخل الكنترول او الزر داخل الكنترول الاخر على انه public ! انت تخالف مبدأ ال Encapsulation بذلك ، الاصح ان تبقيهم private كما هم ، وان تقوم بتعريف methods و events لفعل ما تريد بالقدر المناسب وفقط ،


في الكونترول الذي يحتوي على الزر تحتاج لتعريف event عند الضغط على الزر ، وان يكون public ليمكننا الرصول اليه ، وان تقوم باطلاقه عند الضغظ على الزر : 

كود :
      public event EventHandler BtnClicked;

       private void btnHide_Click(object sender, EventArgs e)
       {
           BtnClicked?.Invoke(this, EventArgs.Empty);
       }


في الكنترول اللذي به بانل نحتاج لتعريف void تقوم باخفاء البانل لنا : 

كود :
       public void HideThePanel()
       {
           panel1.Hide();
       }

فقط !

الان في المكان اللي تضع فيه هاتان الاداتان تحتاج فقط ان تنادي ال method في ال event

كود :
       private void controlWithButton1_BtnClicked(object sender, EventArgs e)
       {
           controlWithPanel1.HideThePanel();
       }

[attachment=26627]
[attachment=26628]

المثال في المرفقات :
بارك الله بجهودكم المباركة وجعله في ميزان حسناتكم