2010-01-20 33 views

Trả lời

29

Hãy thử như sau

Button b1 = CreateMyButton(); 
b1.Click += new EventHandler(this.MyButtonHandler); 
... 
void MyButtonHandler(object sender, EventArgs e) { 
    ... 
} 
+1

cảm ơn bạn, nhưng nó không thực sự phù hợp với nhu cầu của tôi. Tôi đã thử tìm kiếm trên web dựa trên những gì bạn đã cho tôi, nhưng tôi không thể tìm thấy hoặc hiểu bất cứ điều gì. Thing là, tôi có một loạt các nút. Và tôi muốn biết nút nào được nhấp. – jello

+0

@jello, bạn có bao giờ tìm thấy giải pháp của mình để tìm ra nút nào được nhấp không? Tôi có một vấn đề tương tự ngay bây giờ. – mdw7326

2

có vẻ như làm việc này, trong khi thêm một thẻ với mỗi phần tử của mảng

Button button = sender as Button; 

bạn có biết một cách tốt hơn?

3

Nếu bạn muốn xem nút nào được nhấp thì bạn có thể thực hiện các thao tác sau khi tạo và gán các nút. Xét rằng bạn tạo các ID nút bằng tay:

protected void btn_click(object sender, EventArgs e) { 
    Button btn = (Button)sender // if you're sure that the sender is button, 
           // otherwise check if it is null 
    if(btn.ID == "blablabla") 
     // then do whatever you want 
} 

Bạn cũng có thể kiểm tra xem chúng từ đưa ra một lập luận lệnh cho mỗi nút.

19

Sử dụng mã này để xử lý một vài nút nghe tiếng click kiện:

private int counter=0; 

    private void CreateButton_Click(object sender, EventArgs e) 
    { 
     //Create new button. 
     Button button = new Button(); 

     //Set name for a button to recognize it later. 
     button.Name = "Butt"+counter; 

     // you can added other attribute here. 
     button.Text = "New"; 
     button.Location = new Point(70,70); 
     button.Size = new Size(100, 100); 

     // Increase counter for adding new button later. 
     counter++; 

     // add click event to the button. 
     button.Click += new EventHandler(NewButton_Click); 
    } 

    // In event method. 
    private void NewButton_Click(object sender, EventArgs e) 
    { 
     Button btn = (Button) sender; 

     for (int i = 0; i < counter; i++) 
     { 
      if (btn.Name == ("Butt" + i)) 
      { 
       // When find specific button do what do you want. 
       //Then exit from loop by break. 
       break; 
      } 
     } 
    } 
0

Liên quan đến bình luận của bạn nói rằng bạn muốn biết nút được nhấn vào, bạn có thể thiết lập các thuộc tính .Tag của một nút để bất cứ loại xác định chuỗi bạn muốn vì nó được tạo ra và sử dụng

private void MyButtonHandler(object sender, EventArgs e) 
    { 
     string buttonClicked = (sender as Button).Tag; 
    } 
+0

Ít nhất đó là cách đơn giản nhất tôi có thể nghĩ đến. – TehSpowage

Các vấn đề liên quan