Как мне изменить цвет фона выбранной строки datagridview?

#c# #winforms #datagridview

#c# #winforms #datagridview

Вопрос:

Как мне изменить цвет фона выбранной строки datagridview в приложениях C # для Windows?

Комментарии:

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

Ответ №1:

Да ладно, чувак … должно быть простое решение, и, наконец, я его нашел.

 dataGridView1.DefaultCellStyle.SelectionBackColor = Color.Blue;
dataGridView1.DefaultCellStyle.SelectionForeColor = Color.Red;
  

У меня это сработало, никаких сложных кодов, никакой обработки событий. Я делал это раньше, но не смог вспомнить, поэтому подумал, что публикация этого поможет другим и мне в будущем 🙂

Ответ №2:

В DataGridView есть DefaultCellStyle , внутри этого есть SelectionBackColor и SelectionForeColor свойства.

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

http://msdn.microsoft.com/en-us/library/1yef90x0.aspx

Ответ №3:

Это простая и рабочая версия, которую вы можете скопировать и вставить:

 private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    (sender as DataGridView).CurrentRow.DefaultCellStyle.SelectionBackColor = Color.Green;
}
  

Комментарии:

1. это то, что я действительно ищу, спасибо!

Ответ №4:

Используя преимущества DataGridViewCell событий CellEnter и CellLeave , вы могли бы попробовать что-то вроде этого:

 private void foobarDataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
{
  DataGridViewCellStyle fooCellStyle = new DataGridViewCellStyle();
  fooCellStyle.BackColor = System.Drawing.Color.LightYellow;
  this.VariableFinderDataGridView.CurrentCell.Style.ApplyStyle(fooCellStyle);
}

private void foobarFinderDataGridView_CellLeave(object sender, DataGridViewCellEventArgs e)
{
  DataGridViewCellStyle barCellStyle = new DataGridViewCellStyle();
  barCellStyle.BackColor = System.Drawing.Color.White;
  this.VariableFinderDataGridView.CurrentCell.Style.ApplyStyle(barCellStyle);
}
  

Комментарии:

1. Что, если цвет строки до выделения не был белым?

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

Ответ №5:

Цвет можно изменить также в конструкторе «DataGridView»

введите описание изображения здесь

Ответ №6:

Вот мой код

 private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.CurrentRow.DefaultCellStyle.BackColor = Color.Maroon;
dataGridView1.CurrentRow.DefaultCellStyle.ForeColor = Color.White;
}
  

Комментарии:

1. Молодец, Адам! Я никогда не знал, что такое существует!!