tôi cố gắng để bắt F5 trên System.Windows.Forms
cho rằng tôi đã viết:Catch KeyUp tổ chức sự kiện trên WinForm C#
partial class MainForm
{
(...)
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyUp);
(...)
}
public partial class MainForm : Form
{
(...)
private void MainForm_KeyUp(object sender, KeyEventArgs e)
{
Log("MainForm_KeyUp");
if (e.KeyCode == Keys.F5)
{
RefreshStuff();
}
}
}
Nhưng sự kiện của tôi bắt vẻ không làm việc.
Bạn có biết làm thế nào để cactch EventKey trên System.Windows.Forms
?
Trước tiên, bạn có thể thử kiểm tra nó bằng cách thực hiện một cái gì đó như thế này .... ném ngoại lệ mới (e.KeyCode.ToString()); .... Có lẽ điều đó sẽ cho bạn manh mối về mã khóa bạn nên sử dụng. Ngoài ra, hãy chắc chắn sử dụng e.Handled = true; – ismellike
Đặt điểm ngắt trên dòng đầu tiên bên trong 'MainForm_KeyUp' và đảm bảo rằng nó thực sự bị trúng. 'This.KeyUp + = ...' là gì? Ctor? Một phương pháp? Phương pháp đó có thực sự chạy không? Có lẽ bạn đang không thực sự đăng ký với 'sự kiện KeyUp' ... –
@ismellike và Grant Winney, thêm một ngoại lệ hoặc breakpoint là không làm một cái gì đó nhiều hơn nữa. Ngay cả tôi cũng không có thứ gì từ hộp Đăng nhập của mình. Điều đó xác nhận sự kiện không bị bắt. – mickro