0

我有一个 ToolStripMenuItem,其中包含可供选择的子菜单。问题是它们显示在错误的位置:在此处输入图像描述

我有这段代码用于上述项目的子菜单(这是用于 ToolStripCombobox - 谢谢Reza的解决方案 - ),但我很难调整以使其适用于 ToolStripMenuItem,因为它没有包含一个 Control.Parent.GetType() :

private void Form_Load(object sender, EventArgs e)
    {
        var item = toolStripComboBox;
        var createControl = item.Control.Parent.GetType().GetMethod("CreateControl",
            System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
        createControl.Invoke(item.Control.Parent, new object[] { true });

一如既往,任何帮助表示赞赏。

4

1 回答 1

0

我认为您的整个问题的根源是您使用表单加载事件处理程序而不是表单构造函数。当我运行以下代码时,菜单项在表单加载时位于正确的位置:

public Form1()
{
    InitializeComponent();
    ToolStripComboBox item1 = new ToolStripComboBox();
    item1.Items.AddRange(new object[]
    {
        "One",
        "Two",
        "Thtree"
    });
    item1.DropDownStyle = ComboBoxStyle.Simple;
    menuStrip1.Items.Add(item1);
    ToolStripMenuItem item2 = new ToolStripMenuItem();
    item2.Text = "Four";
    menuStrip1.Items.Add(item2);
}
于 2016-11-17T01:29:19.087 回答