Flowlayoutpanel中的按钮

时间:2016-12-21 21:41:15

标签: c# button click 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);

- - - - >我想点击按钮并打开一个表格。 < -----

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分: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?
    }