2016-12-21 4 views
0

i fügen Sie eine Taste für jede Datenzeile in einem Flowlayoutpanel mit wieButtons in Flowlayoutpanel

foreach (var Item in query.OrderBy(x=> x.menu_sort)) 
      { 
       var btn = new Button 
       { 
        Name = Item.menu_name, 
        Text = Item.menu_description, 
        Tag = Item.menu_name, 
        Size = new Size(107, 50), 
        Font = new Font("B Nazanin",10) 
       }; 

       MainPanel.Controls.Add(btn); 

-----> ich will auf Schaltflächen klicken und ein Formular zu öffnen. < -----

+0

das Onclick-Ereignis verwenden, da wollen Sie das Formular starten. – Trey

Antwort

1

Ich denke, Sie möchten einen Ereignishandler zur Laufzeit zu einem Steuerelement hinzufügen, oder? Sie können es auf diese Weise tun:

btn.Click += new EventHandler(button_Click); 

Dann müssen Sie button_Click irgendwo, mit der richtigen Signatur die Methode implementieren:

private void button_Click(object sender, System.EventArgs e) 
{ 
    // Do stuff 
    MyForm form = new MyForm(); 
    form.Show(); 
} 
0

Ich möchte auf Schaltflächen klicken und ein Formular öffnen .

verdrahten der Click() Ereignis für die Tasten, wenn Sie sie erstellen:

private void Foo() 
    { 
     foreach (var Item in query.OrderBy(x=> x.menu_sort)) 
     { 
      var btn = new Button 
      { 
       Name = Item.menu_name, 
       Text = Item.menu_description, 
       Tag = Item.menu_name, 
       Size = new Size(107, 50), 
       Font = new Font("B Nazanin",10) 
      }; 

      btn.Click += Btn_Click; 

      MainPanel.Controls.Add(btn); 
     } 
    } 

    private void Btn_Click(object sender, EventArgs e) 
    { 
     Button btn = (Button)sender; 
     // now do something with "btn", maybe based on btn.Tag? 
    } 
Verwandte Themen