如何通过鼠标或键盘触发Control.Click
事件?
处理MouseClick
和KeyPress
对我不起作用,因为那时我怎么知道是否还有其他因素触发了点击? (例如PerformClick
)
答案 0 :(得分:6)
你做不到。使用Control.MouseClick事件和Control.KeyPress事件,以便告知事件来源。请记住,控件上有焦点的空格和Ctrl +键也可以生成按钮的单击。
答案 1 :(得分:3)
您无法分辨,但如果您需要了解事件的起源,可以使用MouseClick和KeyPress。
void handler(object sender, EventArgs e)
{
bool mouseEvent = (e is MouseEventArgs);
bool keyEvent = (e is KeyEventArgs);
bool performClick = (e is EventArgs) && !keyEvent && !mouseEvent;
}