2014-11-16 62 views

回答

1

您可以在按鈕的CommandArgument屬性中傳遞ID,並且可以在循環內部分配onclick事件:

//for loop 
//... 
Button btn = new Button(); 
//etc 
btn.CommandArgument = theID; 
btn.Click += new EventHandler(btn_Click); 
//... 
//end for loop 

protected void btn_Click(object sender, EventArgs e) 
{ 
    //Need to know which btn was clicked 
    Button btn = sender as Button; 
    if(btn == null) 
    { 
     //throw exception, etc 
    } 
    int id = Convert.ToInt32(btn.CommandArgument); 
    //etc 
} 
0

您可以使用運行時生成的按鈕ID將值傳遞給它。

//Counter for Dynamic Buttons. 
int DynamicButtonCount = 1; 

//This event generates Dynamic Buttons. 
private void btnGenerate_Click(object sender, EventArgs e) 
{ 
    string name = "Dynamic Button_" + DynamicButtonCount; 
    Button btnDynamicButton = new Button(); 
    btnDynamicButton.Name = name; 
    btnDynamicButton.Text = name; 
    btnDynamicButton.Id= DynamicButtonCount; //Use this id value 
    btnDynamicButton.Size = new System.Drawing.Size(200, 30); 
    btnDynamicButton.Location = new System.Drawing.Point(40, DynamicButtonCount * 40); 
    btnDynamicButton.Click += new EventHandler(this.btnDynamicButton_Click); 
    Controls.Add(btnDynamicButton); 
    DynamicButtonCount++; 
} 

//This event is triggered when a Dynamic Button is clicked. 
protected void btnDynamicButton_Click(object sender, EventArgs e) 
{ 
    Button dynamicButton = (sender as Button); 
    MessageBox.Show("You clicked. " + dynamicButton.Name); 
} 
相關問題