0

根据 Cody 对这个问题的回答,我从 ContextMenuStrip 派生了一个类并处理 ProcessCmdKey。Enter当嵌入在菜单中的文本框具有焦点时,这成功地防止了菜单关闭。所以一切都很好,除了一件事。

按下 Enter 后,我从菜单中删除了文本框,处理此控件会导致菜单关闭。当我这样做时:

If (m_inputPanel IsNot Nothing) Then m_inputPanel.Hide()
If (m_inputPanel IsNot Nothing) Then m_inputPanel.Parent.Controls.Remove(m_inputPanel)
If (m_inputPanel IsNot Nothing) Then m_inputPanel.Dispose()

菜单关闭。当我注释掉第三行时,菜单保持打开状态。(顺便说一下,m_inputPanel.Parent 是一个自定义控件,它使用 ToolStripControlHost 嵌入到菜单中)

为什么在上帝的绿色地球上,我处理一个不再是菜单一部分的控件很重要?

4

1 回答 1

1

执行此操作时,您正在从上下文菜单中移除焦点,因为当您移除它时它是具有焦点的文本框,现在没有ContextMenuStrip任何内容具有焦点。

于 2011-03-05T21:53:00.267 回答