C# ComboBox.DropDownWidth属性仅在显示第二个表单时生效

C# ComboBox.DropDownWidth属性仅在显示第二个表单时生效,c#,winforms,combobox,imagelist,C#,Winforms,Combobox,Imagelist,我有一个简单的FixedToolWindow表单,它有一个组合框。我已将DropDownWidth属性设置为53。我还使用图像列表中的图像填充组合框 当我第一次使用首选项form.ShowDialog()打开表单时,下拉列表的宽度大于53,如下所示: 当我关闭表单并使用首选项form.ShowDialog()重新打开时,这是我在重新启动调试之前得到的理想结果: 这是我的首选表格课程: public partial class PreferencesForm : Form { priv

我有一个简单的
FixedToolWindow
表单,它有一个
组合框
。我已将
DropDownWidth
属性设置为53。我还使用
图像列表中的图像填充
组合框

当我第一次使用
首选项form.ShowDialog()
打开表单时,下拉列表的宽度大于53,如下所示:

当我关闭表单并使用
首选项form.ShowDialog()
重新打开时,这是我在重新启动调试之前得到的理想结果:

这是我的首选表格课程:

public partial class PreferencesForm : Form
{
    private Form1 MainForm;
    public TabControl TabControl { get; set; }

    public PreferencesForm(Form1 mainForm)
    {
        MainForm = mainForm;
        InitializeComponent();
    }

    private void PreferencesForm_Shown(object sender, EventArgs e)
    {
        comboBox1.SelectedIndex = Preferences.ColorIndex;
    }

    private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
    {
        e.DrawBackground();
        e.DrawFocusRectangle();
        if (e.Index > -1 && imageList1.Images.Count >= e.Index)
            e.Graphics.DrawImage(imageList1.Images[e.Index], new PointF(e.Bounds.X, e.Bounds.Y));
    }
}
这是我的Form1课程:

public partial class Form1 : Form
{
    private PreferencesForm PreferencesForm;

    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        PreferencesForm = new PreferencesForm(this);
    }

    private void preferencesToolStripMenuItem_Click(object sender, EventArgs e)
    {
        PreferencesForm.ShowDialog();
    }
}
编辑:我已经能够将问题缩小到直接原因。 当我在组合框中更改ItemHeight时,问题就出现了。 默认情况下(15),此问题不会发生

奇怪的是,当我将ItemHeight设置为任何值(包括15!)时,就会出现问题。

因此,当ItemHeight在属性页面中显示为粗体时,就会出现所述问题,但当我右键单击“重置”时,ItemHeight变为灰色15,则没有问题。 其他人能复制这个吗? 组合框的绘图模式为DrawOwnerVariable


任何帮助都将不胜感激。我真是莫名其妙

尝试以所示的形式移动初始SelectedIndex的设置,即使我尝试了,但结果与以前一样。这不会重现问题。请发布一个。因此,我已重新创建了该项目,并且该问题未被复制。我现在要努力找出问题的原因。好的,我已经找到了问题的直接原因。我已将项目高度设置为32(图像的高度)。这导致问题重复。我找到了解决方案!确保属性菜单中的ItemHeight为灰色(右键单击“重置”)。然后以所示的形式设置ComboBox.ItemHeight=32;