2012-07-27 184 views
0

我有一個方法爲我的列表中的每個項目創建一個按鈕。類似的東西:動態按鈕EventArgs點擊

foreach (Product p in productsList) 
{ 
    b = new Button(); 
    b.Name = p.Name; 
    b.Tag = p.Name; 
    b.Text = p.Name; 
    b.Size = new Size(93, 23); 
    b.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowOnly; 
    b.AutoSize = true; 
    b.Click += new System.EventHandler(this.b_Click); 

    this.ProdutosFlowPanel.Controls.Add(b); 
} 

現在,當用戶cliks其中一個按鈕我想顯示一個不同的視圖。但按鈕具有相同的標識符,所以顯示的視圖總是用於創建的按鈕。 我該如何解決我的問題?有任何想法嗎?

謝謝。

最好的問候, 瑪麗亞

回答

1

嘗試使用此代碼

protected void Submit_Click(object sender, EventArgs e) 
    { 
     var flag = ((Button)sender).Text; 
     if (flag == "case 1") 
     { 
      .... 
     } 

     else if (flag == "case 1") 
     { 
      .... 
     } 
     ..... 
2

您可以用按鈕標籤:

b.Tag = p; 

而在你的處理程序:

Product p = ((Product)((Button)sender).Tag); 

然後根據原始產品做邏輯。

編輯:將DataContext(WPF)更改爲標記(WinForms)。

+0

如果將'DataContext'更改爲'Tag'(OP使用Winforms),則爲+1。 – Tergiver 2012-07-27 19:33:41

+0

完成,謝謝。 – Zak 2012-07-28 03:45:24