问题
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
回答1:
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