Как изменить «стиль выбора» в DataGridView (winforms)?DataGridView выбранный тип ячейки
ответ
Вы можете легко изменить ForeColor и BackColor из selcted клеток путем присвоения значения в SelectedBackColor и SelectedForeColor из DefaultCellStyle Сетка в ,
Если вам нужно сделать дальше стилизации вам вам нужно обрабатывать событие SelectionChanged
Edit: (Другие примеры кода содержат ошибки, настраивая для нескольких выбранных ячеек [как в FullRowSelect])
using System.Drawing.Font;
private void dataGridView_SelectionChanged(object sender, EventArgs e)
{
foreach(DataGridViewCell cell in ((DataGridView)sender).SelectedCells)
{
cell.Style = new DataGridViewCellStyle()
{
BackColor = Color.White,
Font = new Font("Tahoma", 8F),
ForeColor = SystemColors.WindowText,
SelectionBackColor = Color.Red,
SelectionForeColor = SystemColors.HighlightText
};
}
}
SelectedBackColor, SelectedForeColor OK. Кажется, нет способа установить разные цвета для разных ячеек. :-( –
SelectedBackColor и SelectedForeColor при использовании в свойстве DefaultCellStyle будут применять одни и те же цвета к любой выбранной ячейке. Если вы хотите установить стиль для разных ячеек, еще раз ответ будет обрабатывать событие SelectionChanged и выполнить некоторое условное присвоение на основе строки или столбца выбранной ячейки. – Luis
Спасибо !!!! именно то, что я искал ... Жаль, что я не могу голосовать! –
Использовать SelectedCells property GridView и Style property DataGridViewCell.
ничего хорошего. Испытано с DataGridView на пустой форме, используя этот код (только изменяет первую выбранную ячейку): частная пустота dataGridView1_SelectionChanged (объект отправителя, EventArgs е) { dataGridView1.SelectedCells [0] = .Style.BackColor Color.Beige; } Этот стиль отображается только после того, как выбор был изменен на другую ячейку. –
Обрабатывать событие SelectionChanged на вашем DataGridView и добавить код, который выглядит примерно так:
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
foreach (DataGridViewCell c in row.Cells)
{
c.Style = this.dataGridView1.DefaultCellStyle;
}
}
DataGridViewCellStyle style = new DataGridViewCellStyle();
style.BackColor = Color.Red;
style.Font = new Font("Courier New", 14.4f, FontStyle.Bold);
foreach (DataGridViewCell cell in this.dataGridView1.SelectedCells)
{
cell.Style = style;
}
}
Протестировано. Неполное. Фон не применяется, а шрифт. Weird –
Используется фон IS, но цвет «Выбор» переопределяет его. Если вы дважды щелкните в ячейке для редактирования, вы увидите цвет фона. – BFree
Вы можете попробовать решение, представленное в этом topic. Я протестировал и одобрил его.
Надеюсь, что помогло.
При этом вы можете даже нарисовать цветную рамку для выбранных ячеек.
private void dataGridView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
{
if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
{
if (dataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected == true)
{
e.Paint(e.CellBounds, DataGridViewPaintParts.All & ~DataGridViewPaintParts.Border);
using (Pen p = new Pen(Color.Red, 1))
{
Rectangle rect = e.CellBounds;
rect.Width -= 2;
rect.Height -= 2;
e.Graphics.DrawRectangle(p, rect);
}
e.Handled = true;
}
}
}
- 1. DataGridView Выбранный цвет ячейки ячейки
- 2. Как проверить тип ячейки DataGridView?
- 3. C# изменение ячейки DataGridView Тип (ошибка?)
- 4. DataGridView получить текущий выбранный объект
- 5. выбранный индекс в datagridview
- 6. Ячейки DataGridView
- 7. DataGrid Выбранный фон ячейки
- 8. Обновить значения ячейки DataGridView сразу
- 9. Ошибка редактирования ячейки datagridview
- 10. DataGridView делает ячейки недоступными
- 11. Значение умножения ячейки datagridview
- 12. Проблема индекса ячейки DataGridView
- 13. DataGridView - Фокусировка определенной ячейки
- 14. Проверка ячейки в datagridview
- 15. Фон ячейки в DataGridView
- 16. Увеличение значения ячейки DataGridView
- 17. Ячейки DataGridView типа
- 18. Удалить содержимое ячейки DatagridView
- 19. Объединить ячейки в datagridview
- 20. Установка ячейки Datagridview Значение
- 21. сравнения DataGridView ячейки значение
- 22. Цвет ячейки в datagridview
- 23. Datagridview сохранить форматирование ячейки
- 24. datagridview Ячейки и комбобокс
- 25. Значение ячейки строки datagridview
- 26. Изменить тип значения связанного datagridview
- 27. Получить выбранный тип элемента
- 28. Как сохранить выбранный выбранный ряд в datagridview на formload
- 29. Тип отображения данных DataGridView
- 30. C# DataGridView + Binding List - Изменение типа ячейки
Уточненный вопрос. Я имел в виду: изменить вид _whole_ (стиль, фон включен) ячейки, которая выбрана _is_, _when_ она выбрана. Нет смысла менять стиль, если вы никогда не видите визуальное изменение. Я очень сожалею о недоразумении :-(Мой бедный английский ударил снова. Извините) -: –