我不明白为什么在按F1键后没有得到帮助信息。在Windows窗体上,我得到了一个按钮,它有焦点,消息显示按预期(按F1后),但当我得到一个空表格时,这不会发生。我想一个空表单默认会设置焦点。 (我读到在按F1获得焦点的控制后会引发此事件)
这是正确的行为,还是我错过了关于空表单上“HelpRequested”事件的内容?这是基于焦点引发事件的正确方法,还是可以配置为在另一个事件(类似onMouseOver)上引发?我可以创建自己的活动并提高它吗? (我不想仅仅为了帮助而添加一个特殊按钮,例如按下此按钮并显示帮助,只有在按下F1后才能显示帮助)。
这是代码:
private void Form1_Load(object sender, EventArgs e)
{
Form1.ActiveForm.HelpRequested += new HelpEventHandler(helpReq);
//button1.HelpRequested += new HelpEventHandler(helpReq);
}
private void helpReq(object sender, HelpEventArgs hlpevent)
{
MessageBox.Show(((Control)sender).Text);
}
答案 0 :(得分:1)
Form1.ActiveForm
,不建议使用。将其更改为this
Text
相关联的Control
属性。你的意思是Tag
?HelpEventArgs.Handled
设置为true OnHelpRequested
即可。我会这样做:
protected override void OnHelpRequested(object sender, HelpEventArgs e)
{
MessageBox.Show((Control) sender).Tag);
e.Handled = true;
base.OnHelpRequested(sender, e);
}