ListBox + OwnerDraw = HScrollBar?
От: Neuromant Россия  
Дата: 16.08.05 14:26
Оценка:
При ручной отрисовки items в ListBox не отображается полоса горизонтальной прокрутки, а точнее прокрутка просто не доступна.
Подскажите как сделать скроллер и обеспечить прокрутку?
Remember the future...
ListBox + OwnerDraw = HScrollBar?
От: Аноним  
Дата: 17.08.05 07:14
Оценка:
Если выставить свойства:
DrawMode — OwnerDrawFixed, HorizontalScrollbar — True,
то всё пучком.
..ленив, удивительно прост и беспечен..


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: ListBox + OwnerDraw = HScrollBar?
От: Neuromant Россия  
Дата: 18.08.05 10:37
Оценка:
Здравствуйте, skyANA, Вы писали:

ANA>Если выставить свойства:

ANA>DrawMode — OwnerDrawFixed, HorizontalScrollbar — True,
ANA>то всё пучком.

Все так. Спасибо. Только еще надо к этому задать диапазон скроллинга.
Remember the future...
Re: ListBox + OwnerDraw = HScrollBar?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.08.05 15:05
Оценка:
Здравствуйте, Neuromant, Вы писали:

N>При ручной отрисовки items в ListBox не отображается полоса горизонтальной прокрутки, а точнее прокрутка просто не доступна.

N>Подскажите как сделать скроллер и обеспечить прокрутку?

ListBox.MeasureItem обрабатываешь?
... << RSDN@Home 1.2.0 alpha rev. 599>>
AVK Blog
Re[2]: ListBox + OwnerDraw = HScrollBar?
От: Neuromant Россия  
Дата: 30.08.05 05:06
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>ListBox.MeasureItem обрабатываешь?


Да, обрабатываю. Но попытка задать ширину Item'a ни к чему не приводит
Remember the future...
Re[2]: ListBox + OwnerDraw = HScrollBar?
От: Аноним  
Дата: 30.08.05 06:30
Оценка:
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
ссылка на оригинальное сообщение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.