当DropDownStyle为Simple时,ToolStripCombobox显示在屏幕的左上角

当我将DropDownStyle设置为Simple时,我有一个ToolStripCombobox 。 第一次打开菜单时,它会显示在屏幕的左上角。 但是,当我第二次选择相同的项目时,它会显示在正确的位置。

有没有办法阻止代码显示屏幕左上角的列表?

预先感谢您的任何帮助。

第一次

结果1

第二次

结果2

要解决此问题,请将此代码放在表单的Load事件中:

 var item = toolStripComboBox1; var createControl = item.Control.Parent.GetType().GetMethod("CreateControl", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); createControl.Invoke(item.Control.Parent, new object[] { true }); 

这是一个奇怪的错误,我不知道为什么DisplayStyle设置为SimpleToolStripComboBox遭受此错误,但通过将DisplayStyle设置为DropDownDropDownList没有此错误。

使用上面的代码,我强制在显示之前创建所有者ToolStripDropDownMenu