All
В настоящее время я работаю над настройкой ListBox, чтобы улучшить четкость моего приложения. В принципе, довольно легко найти «как» для этой цели, приводящей к моему текущему результату ниже.
Я доволен дисплеем, но ... Я столкнулся со странным поведением с колесом мыши. Я попытался найти информацию по этой проблеме, и я нашел эту статью:
http://aviationxchange.net/wikis/winforms/net-color-listbox.aspx
которые указывают на то, что проблема с колесом мыши не единственная (простое копирование / вставка по ссылке)
- Горизонтальная полоса прокрутки исчезла.
Только строки фиксированной длины меньше
чем ширина контроля может быть
отображается. Что делать, если контроль
изменить размер?
- Если вы пытались использовать мышь
колесо, вы могли заметить, что
выбранный элемент перемещается вверх и вниз
хаотично, когда колесо прокрутки
переехал.
- переопределяемые методы
OnPaint () OnPaintBackGround () не
работать на всех. Просто они не
подключен к событиям. Фон
окрашивается только через сообщения Windows.
Это дает некоторые советы по исправлению этих проблем, но я чувствую себя довольно разочарованным, чтобы реализовать все эти «обходные пути» для отображения пользовательского списка. Я что-то пропустил? есть ли какой-нибудь элемент управления winform, который позволяет мне такие же настройки, но более чистым / элегантным способом? Я не смог найти больше информации: /
Ниже добавлена соответствующая часть пользовательской части чертежа, но я не уверен, что проблема отображения действительно связана с реализацией переопределенного метода, больше с самим элементом управления.
public RecordListBox(): base()
{
mListBox = this;
mListBox.DrawItem += new DrawItemEventHandler(mListBox_DrawItem);
mListBox.MeasureItem += new MeasureItemEventHandler(mListBox_MeasureItem);
this.DrawMode = DrawMode.OwnerDrawFixed;
}
public void mListBox_DrawItem(object sender, DrawItemEventArgs e)
{
if (this.DesignMode) return;
e.DrawBackground();
e.DrawFocusRectangle();
// drawing actions
}
public void mListBox_MeasureItem(object sender, MeasureItemEventArgs e)
{
e.ItemHeight = 40;
}
С уважением,