以编程方式添加按钮单击事件

时间:2013-05-08 02:50:48

标签: c# winforms button dynamic

我正在制作一个winform项目,用户将输入要出售的物品。 当用户进入销售屏幕时,将从提供的数据用户生成一些按钮。我需要抓住每个按钮的点击事件。

举个例子:  在数据表中:

  • coca cola 2.00 $
  • 百事可乐2.50 $
  • diet pepsi 3.00 $
  • pepsi max 1.50 $

用户将填写物品和价格,因此没有精确的物品数量显示。

如果用户按下可口可乐按钮两次,并且在我需要列出它们并告诉总数时,可以使用pepsi。

3 个答案:

答案 0 :(得分:3)

只需新建按钮,然后将click事件绑定到您的方法。 像:

Button b=new Button();
b.Click+=new EventHandler(b_Click);

答案 1 :(得分:3)

由于你有不确定数量的按钮,我会使用像user2353972的示例节目那样的公共事件处理程序。然后,您可以通过将发件人对象强制转换为Button来确定单击了哪个按钮。然后,您可以访问按钮的所有属性,包括TextTag对象属性,然后您可以使用它来确定价格。

private void button1_Click(object sender, EventArgs e)
{
    var b = (Button)sender;

    switch(b.Text)  //Do your 
    {
        case "Coca Cola":
            break;
        case "Pepsi":
            break;
        case "Diet Pepsi":
            break;
        case "Pepsi Max":
            break;
        default:
            break;
    }

}

答案 2 :(得分:-1)

我同意Mark Hall的意见;这是要走的路。我建议只做一些小的语法改进:使用

switch ((sender As Button).Text)

简化代码。此致,AB