Posiadanie standardowej wersji WinForm 2.0 2.Szukam sposobu na zmianę koloru obramowania kontrolki lub całkowite usunięcie obramowania.Jak zmienić kolor obramowania (lub usunąć obramowanie) kontrolki PropertyGrid?
Jestem świadomy LineColor
property która niestety tylko zmienia wewnętrzne granice między komórkami.
Dodatkowo użyłem ILSpy, aby rzucić okiem na kod źródłowy kontrolki PropertyGrid
i nadal nie znalazłem nic dla mnie znaczącego.
Moje pytanie brzmi:
Jak usunąć zewnętrzną granicę kontroli PropertyGrid
lub zmienić kolor granicy zewnętrznej?
Aktualizacja 2012-05-04 - Solution (aka "hack"):
podstawie Jamie's answer I zmontowane roztwór roboczy (which you can download from here):
Chodzi o to, aby umieść kratkę właściwości w panelu i pozwól panelowi skontrolować sterowanie.
Dzięki temu podejściu umieściłem panel przycinający w innym panelu z numerem Padding
"1" (lub czymkolwiek, co ma być granice) i nadałem temu panelowi BackColor
, który służy jako kolor obramowania (zielony w mój przykład).
Ustaw Anchor siatki właściwości na "Left, Right, Top, Bottom", ustaw Dock
panelu przycinającego na "Full".
Działa to dobrze dla moich wymagań. Postrzegałbym to jako rodzaj hackowania, ponieważ zużywa zasoby dwóch paneli, które miałem nadzieję zaoszczędzić.
Hehe, już próbowałem tego w przeszłości, bez powodzenia. Spróbuję jeszcze raz, na wszelki wypadek, jeśli zrobię coś nie tak. –
@Jamie To działało, dziękuję za sugestię! Zaktualizuję moje pytanie z twoją odpowiedzią. –
Uważaj, ten bajt można zmienić podczas zmiany rozmiaru okna z powodu automatycznego skalowania formularza. Naprawdę chcesz napisać kod w module obsługi zdarzeń Resize panelu, aby zawsze upewnić się, że właściwość PropertyGrid jest tam, gdzie powinna być. –