2016-12-21 5 views
0

я добавить кнопку для каждой строки данных в FlowLayoutPanel с подобнымКнопки в 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); 

-----> Я хочу, чтобы нажать на кнопки и открыть форму. < -----

+0

использовать событие OnClick, там вы хотите запустить форму. – Trey

ответ

1

Я думаю, что вы хотите добавить обработчик события во время выполнения в управление, не так ли? Вы можете сделать это следующим образом:

btn.Click += new EventHandler(button_Click); 

Затем, вы должны реализовать метод button_Click где-то, с правильной подписью:

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

Я хочу, чтобы нажать на кнопки и открыть форму ,

проволока до Click() события для этих кнопок при их создании:

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? 
    }