窗口失去焦点后更新ToolstripDropdownButton的麻烦

时间:2013-03-01 16:20:06

标签: c# winforms focus toolstrip toolstripdropdown

让我从一个简单的例子开始重现我的问题:

  1. 创建WinForms项目。
  2. 将一个ToolStrip放在上面。
  3. 在其中创建一个ToolstripDropdownButton(没有子项)。
  4. 在按钮上添加一个click事件处理程序,如下所示:

    MessageBox.Show("text", "Caption");
    

    (重点是让主要形式放松它的重点)。

  5. 为了使问题更加明显,让我们做一些不必要的补充:

    1. 将ToolStip的RenderMode设置为ManagerRenderMode。
    2. 将自动调整大小设置为false,使其大一点。
    3. 这应该足以重现它。运行该应用程序,然后单击按钮。你会得到弹出窗口。关闭弹出窗口瞧...按钮现在看起来有人按住了它。

      有关如何将其重置为默认状态的任何想法?

      我试图将Buttons ResetBackColor,Refresh ...也称为ToolStrips。似乎不起作用。也许我错过了什么?

1 个答案:

答案 0 :(得分:2)

MessageBox或模态表单会干扰它。下拉菜单是期待儿童菜单项。

示例解决方法:

private void toolStripDropDownButton1_Click(object sender, EventArgs e) {
  this.BeginInvoke(new Action(() => MessageBox.Show("Help")));
}