Tôi gặp sự cố với việc đặt cùng một trình xử lý sự kiện cho tất cả các điều khiển trên biểu mẫu. Tôi muốn xử lý các nút nhấn f5-f7 đồng nhất trong ứng dụng của mình, vì vậy tôi cố gắng đăng ký cùng một trình xử lý sự kiện cho tất cả các điều khiển trên biểu mẫu. tôi chènMột trình xử lý sự kiện cho tất cả các điều khiển trên biểu mẫu
foreach (System.Windows.Forms.Control cont in this.Controls)
cont.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyPress);
trong InitializeComponent() chức năng ngay trước khi tự động tạo ra ResumeLayout/PerformLayout gọi. Đừng bận tâm đến cái tên MainForm_KeyPress, nó thực sự là một trình xử lý sự kiện KeyDown ngay bây giờ.
Tôi cũng đã cố gắng chèn mã vào hàm init() của tôi được gọi từ hàm tạo. Nhưng kết quả là như nhau: sự kiện không xảy ra khi tôi bấm phím. Tập trung vào một trong các nút của biểu mẫu. Nhưng nếu tôi triển khai trình xử lý cho một trong các nút bằng cách sử dụng công cụ thiết kế (tên hàm sao chép vào trường sự kiện KeyPress), sự kiện sẽ tăng lên một cách chính xác nếu nút đó được lấy nét.
Mọi ý tưởng tại sao foreach không hoạt động?
Một trình xử lý sự kiện để quy tắc tất cả? – jason
Vui lòng không thêm tiền tố vào tiêu đề của bạn bằng "C#:". Đó là những gì các thẻ cho. –
@ Jason - và trong dữ liệu bóng tối liên kết chúng. – TrueWill