ToolStripCombobox displays at the top left corner of the screen when DropDownStyle is Simple

…衆ロ難τιáo~ 提交于 2019-12-04 05:47:28

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!