ToolStripComboBox事件未触发
本文关键字:事件 ToolStripComboBox | 更新日期: 2023-09-27 18:08:58
我在ToolStrip上有一个ToolStripComboBox,然后我的应用程序被最小化到托盘,ShowInTaskBar被设置为false。之后,我的应用程序恢复到正常状态。从这一刻起,ToolStripComboBox将不会触发任何事件。
this.ShowInTaskbar = false;
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = true;
this.WindowState = FormWindowState.Normal;
this.Show();
我怎样才能把这件事带回到工作中去?
这是。net Framework Windows Forms中的一个bug。设置后,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;