繁体   English   中英

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

[英]Programmatically added buttons click event

我正在做一个winform项目,用户将在其中输入要出售的物品。 当用户进入销售屏幕时,将从用户提供的数据中生成一些按钮。 我需要捕获每个按钮的click事件。

举个例子:在数据表中:

  • 可口可乐2.00 $
  • 百事可乐2.50 $
  • 百事可乐3.00 $
  • 百事可乐最高1.50 $

用户将填写项目和价格,因此没有确切的项目数显示。

在表单中,如果用户按两次可口可乐按钮和百事可乐一次,我需要列出它们并告诉总数。

只需添加按钮,然后将click事件绑定到您的方法。 喜欢:

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

由于按钮的数量不确定,因此我将使用像user2353972的示例所示的通用事件处理程序。 然后,可以通过将发送方对象投射到Button来确定单击了哪个按钮。 然后,您可以访问按钮的所有属性,包括“ Text和“ Tag对象属性,然后可以使用这些属性来确定价格。

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

}

我同意马克·霍尔(Mark Hall)的观点。 那是要走的路。 我建议对语法进行一些小的改进:使用

switch ((sender As Button).Text)

简化代码。 问候,AB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM