ToolStripComboBox事件未触发

时间:2014-06-17 19:55:56

标签: c# forms events toolstrip toolstripcombobox

我在ToolStrip上有一个ToolStripComboBox,然后我的应用程序最小化到托盘,ShowInTaskBar设置为false。之后我的应用程序恢复正常状态。从这时起,ToolStripComboBox将不会触发任何事件。

this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;


this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Show();

我怎样才能让这些事件恢复正常?

1 个答案:

答案 0 :(得分:0)

这是.NET Framework Windows窗体中的错误。设置ShowInTaskbar = false后,不会引发事件。

我们可以在设置ShowInTaskbar = true之后通过调用Control类的内部方法来简单地解决方法;

MethodInfo dynMethod = toolStripComboBox1.ComboBox.GetType().GetMethod("RecreateHandleCore",BindingFlags.NonPublic | BindingFlags.Instance); 
dynMethod.Invoke(toolStripComboBox1.ComboBox, new object[] {});

之后,事件将被正确地提出。

另一种解决方案:订单很重要!

this.Show()
this.ShowInTaskbar = true;