web-dev-qa-db-ja.com

datagridviewの選択された行の背景色を変更するにはどうすればよいですか?

C#Windowsアプリケーションでdatagridviewの選択された行の背景色を変更するにはどうすればよいですか?

25

男に来て...簡単な解決策がなければなりません、そして最終的にそれを得ました。

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

これは私にとってはうまくいきました。複雑なコードやイベント処理はありませんでした。私は前にそれをやったが、思い出すことができなかったので、それを投稿することは将来他の人と私を助けるだろうと思った:)

35
Bravo

DataGridViewにはDefaultCellStyleがあり、この中にSelectionBackColorおよびSelectionForeColorプロパティがあります。

選択したスタイルが適用されていないことがわかった場合、DataGridViewはスタイル継承のアイデアを使用します。

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

31

DataGridViewCellのイベントCellEnterCellLeaveを利用して、次のようなものを試すことができます。

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);
}
2
Nano Taboada

ここに私のコードがあります

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