簡體   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