ComboBox.DropDownWidth属性仅在显示

时间:2016-08-14 22:32:55

标签: c# winforms combobox imagelist

我有一个简单的FixedToolWindow表单,其中包含ComboBox。我已将DropDownWidth属性设置为53.我还使用ComboBox中的图片填充ImageList

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

Undesired DropDownWidth

当我关闭表单并使用PreferencesForm.ShowDialog()重新打开时,这是我得到的结果,直到我重新开始调试:

Desired DropDownWidth

这是我的PreferenceForm类:

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();
    }
}
编辑:我已经能够将问题缩小到直接原因。 当我在ComboBox中更改ItemHeight时,会出现问题。 当它处于默认值(15)时,不会发生此问题。

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

因此,当ItemHeight在属性页面中显示为粗体时,会出现所描述的问题,但是当我右键单击"重置"并且ItemHeight变为灰色15没有问题。 其他人可以复制这个吗? ComboBox具有DrawOwnerVariable的绘制模式。

非常感谢任何帮助。我感到非常困惑!

0 个答案:

没有答案