none
2 FORM ARASI İLETİŞİM RRS feed

  • Soru

  • Selam arkadaşlar,

    1.Formumun IsMdiContainer özelliği TRUE ve hali hazırda disable olan menustripe sahip. 2.form child form olarak 1.formun loadına tanımlı program çalıştığı zaman 1.formun içinde 2.form açılıyor. 2.formdan kullanıcı girişi yapıldığı zaman 1.formun üzerindeki menustrip nesnesinin enable olmasını istiyorum.  Modifiers özelliğini public yapmama rağmen göremiyorum ne yapmam gerekiyor. Teşekkürler

    28 Ekim 2015 Çarşamba 22:53

Yanıtlar

  • Ana form mdiparent ise alt formdan MdiParent özelliğini kullanarak ulaşabilirsiniz. Onun haricinde Parent özelliğini kullanabilirsin. 

    Yani MdiParent Form  Form1 ise

                Form3 f3 = new Form3()
                f3.MdiParent = this;  //this = Form1

    şeklinde oluşturduğun bir varsa Form3 ten Form1 e ulaşmak için

                MdiParent.Controls
                         .OfType<Label>()
                         .Where(x=> x.Name== "label1")
                         .First()
                         .Text = "klşkl";
    gibi bir yöntem kullanabilirsin.


    29 Ekim 2015 Perşembe 08:02
  • Deleted
    28 Ekim 2015 Çarşamba 23:18
  • Application.OpenForms["Form1"].Controls["menuStrip"].Enabled = true; 

    Bende uğraşırken bu şekilde yaptım teşekkür ediyorum ilgine.

    28 Ekim 2015 Çarşamba 23:21

Tüm Yanıtlar

  • Deleted
    28 Ekim 2015 Çarşamba 23:18
  • Application.OpenForms["Form1"].Controls["menuStrip"].Enabled = true; 

    Bende uğraşırken bu şekilde yaptım teşekkür ediyorum ilgine.

    28 Ekim 2015 Çarşamba 23:21
  • Ana form mdiparent ise alt formdan MdiParent özelliğini kullanarak ulaşabilirsiniz. Onun haricinde Parent özelliğini kullanabilirsin. 

    Yani MdiParent Form  Form1 ise

                Form3 f3 = new Form3()
                f3.MdiParent = this;  //this = Form1

    şeklinde oluşturduğun bir varsa Form3 ten Form1 e ulaşmak için

                MdiParent.Controls
                         .OfType<Label>()
                         .Where(x=> x.Name== "label1")
                         .First()
                         .Text = "klşkl";
    gibi bir yöntem kullanabilirsin.


    29 Ekim 2015 Perşembe 08:02
  • Statik bir değişken ile çok daha basit olacaktır bence..

    Diğer türlü tüm kullanacağınız yerlerden (child form1, child form2 vs.) her seferinde OpenForms diye formu bulucaksınız cast olacak falan filan hiç gerek yok..

    //frmMain
    public partial class frmMain : Form
    {
       internal static ContextMenuStrip MainMenuStrip;
       public frmMain()
       {
          InitializeComponent();
          frmMain.MainMenuStrip = this.contextMenuStrip1;
       } 
    }
    
    
    //frmChild 1 
    public partial class frmClidForm1 : Form
    {
       public frmChildForm1()
       {
          this.btnMyButton.Click += (o,e)=>
          {
             //Bir takım işler 
             frmMain.MainMenuStrip.Enabled = false;
          }
       }
    }
    
    //frmChild 2 
    public partial class frmClidForm2 : Form
    {
       public frmChildForm2()
       {
          this.btnMyButton2.Click += (o,e)=>
          {
             //Bir takım işler 
             frmMain.MainMenuStrip.Enabled = false;
          }
       }
    }


    oguzkurtcuoglu.com



    30 Ekim 2015 Cuma 07:27