Строки DataGridView не могут изменить свой цвет фона на этапе инициализации - PullRequest
3 голосов
/ 26 августа 2010

У меня следующая проблема: TabControl имеет три TabPages.Каждая вкладка имеет свой собственный DataGridView.При событии «Ввод» некоторые строки меняют цвет фона.Когда форма начинает инициализироваться, вызывается функция, которая меняет цвет.Но строки DataGridView имеют фон по умолчанию (цвет фона не изменился).Если я нажимаю на другую TabPage, а затем возвращаюсь к первой TabPage, функция вызывается снова, и фон меняется.Итак, почему это не происходит в первый раз на этапе инициализации (функция вызывается, но строки не меняют свой цвет).Как заставить DataGridView изменить цвет фона своих строк на этапе инициализации?Большое спасибо!

Ответы [ 3 ]

1 голос
/ 22 ноября 2014

У меня была такая же проблема с DataGridViewCellStyle. Кажется, есть ошибка с TabControl, что , когда у него более одной вкладки , cellstyles, созданные с помощью кода, применяются только к DataGridView первой вкладки , так что вы можете переместить DataGridView на первую вкладку или использовать событие SelectedIndexChanged TabControl и поместить в него свой код стиля.

1 голос
/ 26 августа 2010

Как вы меняете цвет?Возможно, вы захотите заглянуть в событие CellFormatting, чтобы увидеть, можете ли вы явно закрасить ячейку, когда она видна пользователю.Таким образом, каждый раз, когда он перерисовывает ячейку, вы можете гарантировать, что цвет будет правильным.(Предполагая, что вам нужны разные цвета для строк, в противном случае просто установите стиль ячейки и лишите законной силы элемент управления.

ОБНОВЛЕНИЕ:

Важно, что вы ссылаетесь на стиль ячейки через аргументы события, в противном случаевыполните рекурсию, чтобы определить стиль ячейки, к которому вы пытаетесь обратиться.

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    e.CellStyle.BackColor = Color.PaleGreen
}
0 голосов
/ 21 февраля 2013

Я знаю, что это старый вопрос, но у меня была похожая проблема, и мне было трудно найти ответ.Я в конечном итоге выяснить это самостоятельно.Мои DGV были на вкладке, поэтому все, что мне нужно было сделать, это выбрать вкладку перед применением изменения цвета:

this.tabControl1.SelectedTab = tabPage2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...