Фоновый цвет выделения изменения ListView?

Как я могу изменить цвет выделения на ListView? По умолчанию, когда пользователь выбирает объект, он показывает синий фон. Я хочу изменить это на темно-серый, или что-то... Спасибо за справку!

6
задан Zach Johnson 7 April 2010 в 21:59
поделиться

3 ответа

ObjectListView - оболочка для WinForm ListView - имеет свойства, позволяющие управлять цветом фона и переднего плана выбранных строк. Он использует технику, предложенную Obalix, но уже проделал за вас тяжелую работу.

Итак, приложив немного усилий, вы можете создать что-то вроде этого:

alt text

Строка «Feel Good Inc» показывает настраиваемый передний план и фон для выбора.

1
ответ дан 10 December 2019 в 00:36
поделиться

Если вы хотите, чтобы ваш ListView имел стиль проводника Windows ListView (включая красивый внешний вид с закругленными краями в Win7 / Vista), вы можете использовать для этого небольшой P / Invoke:

[DllImport("uxtheme.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
internal static extern int SetWindowTheme(IntPtr hWnd, string appName, string partList);

// You can subclass ListView and override this method
protected override void OnHandleCreated(EventArgs e)
{
    base.OnHandleCreated(e);
    SetWindowTheme(this.Handle, "explorer", null);
}
7
ответ дан 10 December 2019 в 00:36
поделиться

Что ж, для WinForms вам нужно установить для свойства OwnerDraw значение true, а затем использовать события DrawItem и DrawSubItem , чтобы нарисовать элемент вручную.

См. Здесь для примера.

2
ответ дан 10 December 2019 в 00:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: