我在ToolStrip上有一个ToolStripComboBox,然后我的应用程序最小化到托盘,ShowInTaskBar设置为false。之后我的应用程序恢复正常状态。从这时起,ToolStripComboBox将不会触发任何事件。
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Show();
我怎样才能让这些事件恢复正常?
答案 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;