Tôi đang tạo một ứng dụng biểu mẫu cửa sổ bằng C#. Tôi thêm các nút và các điều khiển khác theo chương trình vào thời gian chạy. Tôi muốn biết cách xử lý các sự kiện nhấp chuột của các nút đó?cách xử lý các sự kiện nút được lập trình bổ sung? C#
Trả lời
Hãy thử như sau
Button b1 = CreateMyButton();
b1.Click += new EventHandler(this.MyButtonHandler);
...
void MyButtonHandler(object sender, EventArgs e) {
...
}
Kiểm tra ví dụ này How to create 5 buttons and assign individual click events dynamically in C#
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?
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.
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;
}
}
}
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;
}
Ít nhất đó là cách đơn giản nhất tôi có thể nghĩ đến. – TehSpowage
- 1. Làm cách nào để thêm các tham số bổ sung vào trình xử lý ExtJS?
- 2. Thừa kế các trình xử lý sự kiện trong C#
- 3. Làm thế nào để thêm các trình xử lý sự kiện bổ sung vào một cá thể datepicker jquery-ui?
- 4. C#: sự kiện với tính năng bổ sung/xóa thông minh! = Sự kiện điển hình?
- 5. Trình xử lý sự kiện nhấn nút dài
- 6. Lập trình trò chơi và xử lý sự kiện
- 7. Trình xử lý sự kiện theo cú pháp/mẫu C# -
- 8. C# vượt qua tham số bổ sung để xử lý sự kiện trong khi ràng buộc sự kiện tại thời điểm chạy
- 9. C#: gọi phương thức xử lý sự kiện nút mà không thực sự nhấp vào nút
- 10. Tạo trình xử lý sự kiện C# trống
- 11. Trình xử lý sự kiện không được gọi? - wxWidgets
- 12. C# Gỡ bỏ rõ ràng Trình xử lý sự kiện
- 13. Xác định danh sách các trình xử lý sự kiện được liên kết với sự kiện
- 14. Xử lý các sự kiện C# COM trong C++
- 15. C# xóa một trình xử lý sự kiện
- 16. chạm vào trình xử lý sự kiện cho UIImageView
- 17. Sự khác biệt giữa Trình xử lý sự kiện & Trình xử lý sự kiện trong Java là gì?
- 18. Đang chờ sự kiện được xử lý
- 19. Các xử lý sự kiện để chọn
- 20. Trình xử lý gửi biểu mẫu với các đối số bổ sung
- 21. Thêm xử lý sự kiện riêng trước xử lý sự kiện khác
- 22. Sự khác biệt, nếu có, giữa trình xử lý sự kiện và trình xử lý sự kiện?
- 23. javascript xử lý sự kiện sau khi gỡ bỏ nút
- 24. Lập trình bổ sung các quyền bảo mật cho các tệp trong C#
- 25. Làm cách nào để xóa tất cả trình xử lý sự kiện của sự kiện 'Nhấp' của 'Nút'?
- 26. jQuery nhiều trình xử lý sự kiện - Cách hủy?
- 27. Trình xử lý sự kiện có được xử lý không đồng bộ không?
- 28. cách chuyển tham số tới trình xử lý sự kiện
- 29. Cách ghi đè trình xử lý sự kiện jquery
- 30. Gỡ bỏ đúng trình xử lý sự kiện ẩn danh
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
@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