我有一个简单的FixedToolWindow
表单,其中包含ComboBox
。我已将DropDownWidth
属性设置为53.我还使用ComboBox
中的图片填充ImageList
。
当我第一次使用PreferencesForm.ShowDialog()
打开表单时,下拉列表的宽度大于53,如下所示:
当我关闭表单并使用PreferencesForm.ShowDialog()
重新打开时,这是我得到的结果,直到我重新开始调试:
这是我的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的绘制模式。
非常感谢任何帮助。我感到非常困惑!