При ручной отрисовки items в ListBox не отображается полоса горизонтальной прокрутки, а точнее прокрутка просто не доступна.
Подскажите как сделать скроллер и обеспечить прокрутку?
Если выставить свойства:
DrawMode — OwnerDrawFixed, HorizontalScrollbar — True,
то всё пучком.
..ленив, удивительно прост и беспечен..
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, Neuromant, Вы писали:
N>При ручной отрисовки items в ListBox не отображается полоса горизонтальной прокрутки, а точнее прокрутка просто не доступна.
N>Подскажите как сделать скроллер и обеспечить прокрутку?
ListBox.MeasureItem обрабатываешь?
... << RSDN@Home 1.2.0 alpha rev. 599>>
Здравствуйте, AndrewVK, Вы писали:
AVK>ListBox.MeasureItem обрабатываешь?
Да, обрабатываю. Но попытка задать ширину Item'a ни к чему не приводит
listBox.DrawItem += new System.Windows.Forms.DrawItemEventHandler( listBox_DrawItem );
// Обработывает отрисовку элементов списка сообщений
private void listBox_DrawItem( object sender, System.Windows.Forms.DrawItemEventArgs e )
{
DataRow row = (listBox.Items[ e.Index ] as DataRowView).Row;
string itemText = Convert.ToString( row[ listBox.DisplayMember ] );
// Определяем размер скроллинга
SizeF size = e.Graphics.MeasureString( itemText, e.Font );
if ( listBox.HorizontalExtent < (int)size.Width )
listBox.HorizontalExtent = (int)size.Width;
}
ListBox у меня отображает сообщения из базы, по-этому DataSource у него DataTable, но это не суть...
..ленив, удивительно прост и беспечен..
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение