Как я могу изменить цвет выделения на ListView? По умолчанию, когда пользователь выбирает объект, он показывает синий фон. Я хочу изменить это на темно-серый, или что-то... Спасибо за справку!
ObjectListView - оболочка для WinForm ListView - имеет свойства, позволяющие управлять цветом фона и переднего плана выбранных строк. Он использует технику, предложенную Obalix, но уже проделал за вас тяжелую работу.
Итак, приложив немного усилий, вы можете создать что-то вроде этого:
Строка «Feel Good Inc» показывает настраиваемый передний план и фон для выбора.
Если вы хотите, чтобы ваш 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);
}
Что ж, для WinForms вам нужно установить для свойства OwnerDraw
значение true, а затем использовать события DrawItem
и DrawSubItem
, чтобы нарисовать элемент вручную.
См. Здесь для примера.