0

我有一个主窗口和一个带有不同命令按钮的工具条。在这些命令中,我也有一个“打印”按钮(见下文)。当我点击“打印”按钮时,我需要将子表单显示为模态少对话框。因为,我在子表单上几乎没有选择。如果用户选择它们,那么他/她也可以与主窗体交互。

在此处输入图像描述

同时,在 show() 方法上,我禁用主窗体上的所有控件(见下文),因为如果我使用 ShowDialog() 方法来显示子窗体,它将完成。当我单击“打印”按钮时,它的颜色发生了变化,表明它已被聚焦/选中。

在此处输入图像描述

点击子表单如下图所示。

在此处输入图像描述

从逻辑上讲,当我关闭子表单时,它应该返回到以前的模式。但是,即使是子表单也显示......主表单上的“打印”按钮仍处于焦点/选中状态。当我关闭子表单时,“打印”按钮仍然像下面那样聚焦/选中。

在此处输入图像描述

需要更改什么事件/属性才能使此“打印”按钮显示为初始状态。

我已经尝试过 Invalidate(),更改 BackColor 但尚未满足要求。任何准则?

4

2 回答 2

0

CheckOnClick如果您根本不希望它显示为“选中”,请将按钮的属性设置为 false,否则CheckState在子窗体关闭时切换按钮上的属性。

于 2012-10-20T00:48:02.423 回答
0

好吧,ToolStripButton 中的 Selected 属性是只读的。任何需要清除工具条按钮选择的人都可以使用以下通过反射调用的方法。

MethodInfo method = typeof(ToolStrip).GetMethod("ClearAllSelections", BindingFlags.NonPublic | BindingFlags.Instance);
            method.Invoke(yourToolStripName, null);

这来自:如何取消选择 ToolStripItems

快乐编程。

于 2012-10-24T09:55:53.597 回答