簡體   English   中英

如何添加到 button_click 的事件參數

[英]how to add to event args of button_click

我有一個 button_click(object sender, EventArgs s) 和一個 class Purchase:EventArgs 加上一個動態創建的按鈕。 我想單擊按鈕,然后發送“購買”而不是事件參數。 即,我想在按鈕單擊時將事件參數編輯到按鈕。 這樣我就可以使用該信息,因為它是一個動態創建的按鈕。 我怎么做? 我有幾個想法,例如為按鈕創建主控 class,但我想要答案。

我知道這是一個很難的問題。 但是如果事件參數不可訪問,它們有什么用呢?

var button = new Button();
button.Text = "change";
button.Click += button_Click;

table.Controls.Add(new Button() { Text = "change" }, 0, table.RowCount - 1);
            table.Controls.Add(new TextBox() { Text = pr.value.ToString() }, 0, table.RowCount - 1);
            table.Controls.Add(new DateTimePicker() { Text = pr.time.ToString() }, 0, table.RowCount - 1);
            table.Controls.Add(new TextBox() { Text = "transaction" }, 0, table.RowCount - 1);

            table.RowCount++;

我想要某個東西

like button.Click+=button_click(pr) 

什么時候

/*when pr:*/ Purchase pr = new Purchase()//...;

將每個按鈕的點擊處理程序設置為相同

將按鈕的Tag屬性設置為點擊中要處理的object

 Button MakeButton(string text, object tag){
       var b = new Button{
         Text = text,
         Tage = tag
      };
       b.Click += button_Click;
      return b;
  }
     
 

 table.Controls.Add(MakeButton("change", new Froodle()), 0, table.RowCount - 1);
 table.Controls.Add(MakeButton(pr.value.ToString(), new Froodle()), 0, table.RowCount - 1);

ETC

現在在點擊處理程序中從標簽中獲取 object

 void button_Click(object sender, Eventargs e){
     var target = sender.Tag;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM