DataGridView / ListView - Показать в стиле Outlook? - PullRequest
1 голос
/ 23 января 2009

Я привык использовать Telerik Grids и могу отображать их в стиле outlook, то есть изображение слева, жирный заголовок и несколько других строк текста под основным заголовком.

Есть ли способ сделать это с помощью стандартного элемента управления Windows .Net2.0? Либо с дешевым контролем, либо с существующим представлением данных или списком?

В принципе мне нужно иметь возможность создать макет следующим образом:

Job Title
Engineer: Fred Bloggs
Product: Some random product

Итак, у меня будет около 2000 таких элементов в сетке с изображением статуса рядом с каждым из них, каков наилучший способ добиться этого?

Ответы [ 3 ]

1 голос
/ 24 января 2009

Вот справка по использованию списка для списка. Я бы пошел со списком, потому что у вас будет только один столбец, поэтому сетка не нужна.

Вы хотите использовать:

private void lstItems_DrawItem(object sender, DrawItemEventArgs e)

Затем используйте e.Graphics, чтобы получить объект, который вы можете нарисовать непосредственно.

Я использовал этот учебник , чтобы помочь мне научиться рисовать в ListView

0 голосов
/ 14 февраля 2009

Я искал то же самое. Я просто наткнулся на что-то интересное. Проверьте бесплатные пакеты Visual Basic Power Pack 3.0 (вы можете ссылаться на это на любом языке .NET, включая c #):

http://msdn.microsoft.com/en-us/vbasic/bb735936.aspx

Это в основном позволяет вам создать одну строку с любыми элементами управления, которые вам нужны, а затем повторить эту строку с вашими связанными данными

0 голосов
/ 24 января 2009

Я не могу привести вам пример, потому что у меня нет времени, чтобы написать его в это время, но вы можете создать UserControl, который выкладывает строку так, как вы хотели бы ее видеть. Тогда вам придется создать свой собственный DataGridViewCell, который может обрабатывать UserControl, а не стандартные типы ячеек, которые предоставляет MS. Для каждой из ваших записей создайте и заполните пользовательский элемент управления и добавьте его в другую строку в DataGridView.

...