2013-03-19 4 views
4

У меня есть ListView, где я добавляю ItemsListViewItem s. Свойство View имеет значение Details. Когда отображается ListView, ListViewItem s не имеют границы (верхняя и нижняя строка, которая отделяет один элемент от другого).ListViewItem Border - Compact Framework

Как добавить границу ко всем моим предметам?

Пример:

enter image description here

+1

Эй, я думаю, кто-то заимствовал мой образ! :) – jp2code

ответ

4

По какой-то причине Gridlines не поддерживается элементом управления CF, хотя основной набор ListView делает. P/Вызвать на помощь.

private const uint LVM_FIRST = 0x1000; 
private const uint LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54; 
private const uint LVM_GETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 55; 
private const uint LVS_EX_GRIDLINES = 0x00000001; 

[DllImport("coredll.dll")] 
private static extern uint SendMessage(IntPtr hwnd, uint msg, uint wparam, uint lparam); 

public void EnableGridlines(ListView listView) 
{ 
    var style = SendMessage(
      listView.Handle, 
      LVM_GETEXTENDEDLISTVIEWSTYLE, 
      0, 
      0); 

    style |= LVS_EX_GRIDLINES; 

    var style = SendMessage(
      listView.Handle, 
      LVM_SETEXTENDEDLISTVIEWSTYLE, 
      0, 
      style);  
} 
+0

Это работает, я вижу голубую границу. Как изменить цвет и толщину линии? – Nick

+0

Я не знаю, как изменить цвет или толщину границы (хотя я тоже никогда не искал способ). – ctacke

+0

Если однажды вы узнаете ответ, пожалуйста, дайте мне знать. – Nick

1

ListView не поддерживает GridLines в компактной структуре. Вы можете использовать DataGridView

Смежные вопросы