Когда комбо содержит много элементов, комбо выпадает и вы прокручиваете выпадающий список вверх и вниз, все элементы в выпадающем списке перепутаны - похоже, они перезаписывают друг друга.Я работаю на 64-битной Windows 7 с deve Studio 2008. У меня не было этой проблемы на Windows XP.Сократил код до простого примера, который воспроизводит проблему.
public class ODComboBox : ComboBox
{
protected override void OnDrawItem(
DrawItemEventArgs e)
{
if (e.Index == -1) {
e.DrawBackground();
e.DrawFocusRectangle();
return;
}
string text = Items[e.Index].ToString();
e.Graphics.SetClip(e.Bounds);
e.DrawBackground();
e.Graphics.DrawString(text, Font, new SolidBrush(ForeColor), e.Bounds);
e.DrawFocusRectangle();
}
}
Для режима отрисовки комбинированного объекта установлено значение OwnerDrawFixed, а вот метод OnLoad с хоста из.
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 50; ++i) {
cobmob1.Items.Add("AAAAAAAAAAAAAAAAAAAAAAAA");
cobmob1.Items.Add("BBBBBBBBBBBBBBBBBBBBBBBB");
}
cobmob1.DropDownWidth = 500;
}
