I have a ToolStripCombobox that when I set its DropDownStyle to Simple. The first time which I open the menu, it displays at the top left corner of the screen.
However, when I select the same item for the second time, it displays in the correct location.
Is there a way to prevent the code from showing the list at the top left corner of the screen?
Thank you in advance for any help.
First Time
Second Time
To solve the problem put this code in the Load event of form:
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 });
It's a strange bug and I don't have any idea why the ToolStripComboBox with DisplayStyle set to Simple suffers from this bug but by setting DisplayStyle to DropDown or DropDownList doesn't have this bug.
Using above code, I forced the owner ToolStripDropDownMenu be created before being shown.
来源:https://stackoverflow.com/questions/40390885/toolstripcombobox-displays-at-the-top-left-corner-of-the-screen-when-dropdownsty