Mam DataGridView w mojej aplikacji C#. Korzystając z projektanta ustawiłem właściwości AlternatingRowsDefaultCellStyle
, a także właściwości DefaultCellStyle
w samym DGV. Oba te style mają wartość dopełnienia 0, 0, 5, 0
. Nie ustawiłem żadnych niestandardowych stylów dla żadnej z kolumn DGV z menu Edit Columns
w dodatku DataGridView Tasks.Zmiana dopełnienia dla wszystkich komórek w pojedynczej kolumnie DataGridView
W kolumnie DGV jest jedna kolumna, w której rysuję niewielki wykres dla każdego wiersza. Chciałbym usunąć wypełnienie ze wszystkich komórek w tej kolumnie, więc nie ma dopełnienia zastosowanego w komórce, która pozostawia pewną białą przestrzeń na końcu wykresu.
Każda z poniższych czynności, które próbowałem, nie usuwa wyściółki z komórek w kolumnie, ale także nie wyrzucaj żadnych wyjątków.
// first attempt
// taken from http://social.msdn.microsoft.com/Forums/eu/winforms/thread/a9227253-8bb4-429a-a700-8a3a255afe4d
deviceGrid.Columns["GProduction"].DefaultCellStyle.Padding = new Padding(0);
// second attempt
DataGridViewCellStyle style = deviceGrid.Columns["Graph"].DefaultCellStyle; // also tried Clone()
style.Padding = new Padding(0);
deviceGrid.Columns["GProduction"].DefaultCellStyle = style;
// third attempt
DataGridViewColumn col = deviceGrid.Columns["Graph"];
DataGridViewImageCell icell = new DataGridViewImageCell();
icell.Style.Padding = new Padding(0);
col.CellTemplate = icell;
Podejrzewam, że może DefaultCellStyle
wyściółka z DataGridView sama jest przesłanianie domyślny styl komórki próbuję ustawić dla kolumny, ale jeśli tak jest, co muszę zrobić, aby temu zapobiec?
ROZWIĄZANIE:
po wykonaniu dostarczone przez jmh_gr znalazłem problemem było to, że DefaultCellStyle
dla samego DataGridView jest dziedziczona ostatni na komórce, więc musiałem wyjąć wyściółkę z właściwości DGV, i stosować go do wszystkich kolumn oprócz tej, której nie chciałem wypełniać.
spędzić trochę czasu z [Style komórki w Windows Forms DataGridView] (http://msdn.microsoft.com/en-us/library/1yef90x0.aspx), który szczegółowo opisuje dziedziczenie stylu. Trudno dokładnie określić, jaki jest stos stylów, nie widząc wszystkich stylów kodu i GUI. –
@jmh_gr Dzięki za wskazanie, widzę teraz, że dziedziczy on styl z DGV DefaultCellStyle LAST, ponieważ tam właśnie ustawiam dopełnienie, to przesłonię wartość 0 ustawioną na kolumnie lub samej komórce. Uważam, że rozwiązaniem jest zastosowanie dopełnienia 5px w komórkach wymagających wypełnienia i pozostawienie 0 wypełnienia w domyślnych stylach. – drew010
Zamiast umieszczać [rozwiązane] w tytule i edytować pytanie, umieść swoje rozwiązanie jako odpowiedź. Za kilka dni możesz wrócić i oznaczyć go jako zaakceptowany. –