我有一个MainForm
,其中包含一个用来加载其他表格的面板。
这就是我的做法。
private void Button1_Click(object sender, EventArgs e)
{
panel3.Controls.Clear();
AnotherForm anotherForm = new AnotherForm();
anotherForm.TopLevel = false;
anotherForm.Location = new Point(anotherForm.Location.X, anotherForm.Location.Y);
panel3.Controls.Add(anotherForm);
anotherForm.Show();
}
现在,我想添加快捷方式来激活某些textboxes
,但是代码无法正常工作。这是我尝试过的方法,可以在常规条件下工作(不在面板内打开)
private void AnotherForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode.ToString() == "A")
MessageBox.Show("asdf");
}
此外,框架为4.5。请帮忙。
答案 0 :(得分:0)
Forms
不会响应KeyDown
事件,直到其KeyPreview
属性设置为true
。因此,您需要将AnotherForm
的{{1}}属性设置为true:
获取或设置一个值,该值指示在将事件传递给具有焦点的控件之前,表单是否将接收键事件。
此外,为了使此方法有效,您需要通过在KeyPreview
之后调用Focus
方法来强制表单焦点,如下所示::
Application.OpenForms