#c# #winforms
#c# #winforms
Вопрос:
Как мне сделать текст строки datagridview выделенным жирным шрифтом при выборе строки?
Ответ №1:
Обработайте событие форматирования ячейки DataGridView и примените полужирный стиль к шрифту, если ячейка принадлежит выбранной строке:
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var dataGridView = sender as DataGridView;
if (dataGridView.Rows[e.RowIndex].Selected)
{
e.CellStyle.Font = new Font(e.CellStyle.Font, FontStyle.Bold);
// edit: to change the background color:
e.CellStyle.SelectionBackColor = Color.Coral;
}
}
Комментарии:
1. спасибо за помощь !. и как изменить задний цвет строки?
2. Можно ли выделить жирным шрифтом только некоторые слова в ячейке, а не всю ячейку? Мне нужна эта функциональность для отображения основных моментов, но я не знаю, как это реализовать? Возможно ли это вообще?
3. @FrenkyB: Смотрите Статью Ячейка RichTextBox в DataGridView в Code Project, но, похоже, есть проблемы с производительностью… Может быть, если ваши данные доступны только для чтения, это может быть приемлемо.
4. Я получил ошибку нулевой ссылки, когда сетка была пустой, поэтому я использовал
row.Cells[1].Style.Font = new Font( blahblahDataGridView.RowTemplate.DefaultCellStyle.Font, FontStyle.Bold);
— но мне также пришлось установить шрифт по умолчанию для DataGridView.
Ответ №2:
После загрузки содержимого в Datagrid примените эти обработчики событий к RowEnter и RowLeave.
private void dg_RowEnter(object sender, DataGridViewCellEventArgs e)
{
System.Windows.Forms.DataGridViewCellStyle boldStyle = new System.Windows.Forms.DataGridViewCellStyle();
boldStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold);
dg.Rows[e.RowIndex].DefaultCellStyle = boldStyle;
}
private void dg_RowLeave(object sender, DataGridViewCellEventArgs e)
{
System.Windows.Forms.DataGridViewCellStyle norStyle = new System.Windows.Forms.DataGridViewCellStyle();
norStyle.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular);
dg.Rows[e.RowIndex].DefaultCellStyle = norStyle;
}
Коды не тестируются. Но это должно работать нормально.
Надеюсь, это поможет.
Ответ №3:
Попробуйте обработать SelectionChanged
событие DataGridView и задать cell
стиль.
Ответ №4:
Приведенный ниже код сделает шрифт жирным шрифтом для выбранной строки. «Итого» — это последняя проверка строки в моем коде
protected void gvRow_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[rowIndex].Text == "Total")
{
e.Row.Font.Bold = true;
}
}
}
Комментарии:
1. Речь идет о компоненте DataGridView, ваш — это что-то другое.
2. хорошо, мой ответ основан на GridView! что мне теперь делать .. должен ли я удалить свой ответ?