Имея стандартный WinForms 2.0 PropertyGrid
control Я ищу способ изменить цвет границы элемента управления или вообще удалить границу.Как изменить цвет рамки (или удалить границу) элемента управления PropertyGrid?
Я знаю о LineColor
property, который, к сожалению, только изменяет внутренние границы между ячейками.
Кроме того, я использовал ILSpy, чтобы посмотреть исходный код элемента управления PropertyGrid
и все еще не нашел ничего значимого для меня.
Мой вопрос:
Как удалить внешнюю границу с PropertyGrid
управления или изменить цвет внешней границы?
Обновление 2012-05-04 - Решение (так называемый "взлом"):
На основе Jamie's answer я собрал рабочий раствор (which you can download from here):
Идея заключается в том, чтобы поместите сетку свойств внутри панели и позвольте панели закрепить элемент управления.
При таком подходе я установил обрезную панель на другую панель, имеющую Padding
«1» (или все, что вы хотите, чтобы границы были) и дал этой панели BackColor
, который служит в качестве цвета рамки (зеленый в мой пример).
Установите привязку сетки свойств в положение «Влево», «Вправо», «Внизу», «Вниз», установите Dock
обрезной панели на «Полный».
Это хорошо работает для моих требований. Я видел бы это как хак, так как он потребляет ресурсы двух панелей, которые я надеялся, что смогу сэкономить.
Хе-хе, я уже пробовал это в прошлом, безуспешно. Я попробую еще раз, на всякий случай, я сделал что-то не так. –
@Jamie Это сработало, спасибо за ваше предложение! Я отвечу на ваш вопрос с ответом. –
Будьте осторожны, этот может быть байтом, когда размеры окон изменяются из-за автоматического масштабирования формы. Вы действительно хотите написать код в обработчике событий Resize панели, чтобы всегда убедиться, что PropertyGrid - это то, где он должен быть. –