将表单添加到面板时,键盘快捷键不起作用c#

时间:2009-05-20 15:53:19

标签: c# .net winforms keyboard-shortcuts

我正在编写一个应用程序,其中有一个带有面板的表单。我注意到当我向面板添加另一个表单时,添加的表单的键盘快捷键停止工作。

我使用以下代码:

MainMenu m = new MainMenu();
m.TopLevel = false;
m.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
m.Dock = System.Windows.Forms.DockStyle.Fill;
pnl.Controls.Add(m);
m.Visible = true;
pnl.ResumeLayout();

有没有让键盘快捷键有效?

此致

3 个答案:

答案 0 :(得分:1)

我的第一个猜测(这完全是一个猜测)是你需要在构造子对象时传递父/所有者,而不是仅仅指定父对象...你能告诉我们你的代码的一部分吗?

另外,只是浏览一下代码,对于MainMenu来说,将Dock设置为Fill似乎很奇怪......

答案 1 :(得分:0)

我发现这是由于焦点问题。

我已经将表单转换为用户控件,问题已经消失。

答案 2 :(得分:0)

将表单添加到另一个表单中的面板?这不是一个支持的场景;坦率地说,我很惊讶它不会抛出异常。更好的方法是使用UserControls。