私は以下のようにDataGridViewのを持っている:は、どのようにコンボボックスの値に基づいて、DataGridViewのセルの色を変更するには?
私が希望:
フォームの負荷、
Gender
列の値は、男性、コラムName
意志の対応する色のセルである場合男性→女性、の色のセル:列Gender
の値を変更した場合ときホワイトことコラム
Name
はDarkGray、 なりそうであれば、変更した列の値Gender
:女性→男性、コラムName
のカラーセルが、私はそれを試してみましたが、私はそれを行うことはできませんよ
ホワイトになります。
private void dataGridView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
{
DataGridView dgv = sender as DataGridView;
DataGridViewCell cell = dgv.CurrentCell;
if (dgv.Rows[cell.RowIndex].Cells["Gender"].Value.ToString().Trim() == "Male")
{
// Male
dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.White;
}
else
{
// Female
dgv.Rows[cell.RowIndex].DefaultCellStyle.BackColor = Color.DarkGray;
}
}
OR:
private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridView dgv = sender as DataGridView;
if (dgv.Columns[e.ColumnIndex].Name.Equals("Gender"))
{
if (e.Value != null && e.Value.ToString().Trim() == "Male")
{
e.CellStyle.BackColor = Color.White;
}
else
{
e.CellStyle.BackColor = Color.DarkGray;
}
}
//if (dgv.Rows[e.RowIndex].Cells["Gender"].Value.ToString().Trim() == "Male")
//{
// e.CellStyle.BackColor = Color.White;
//}
//else
//{
// e.CellStyle.BackColor = Color.DarkGray;
//}
}
これらの任意のヒントが大きな助けになります。前もって感謝します。
[CellFormattingイベント](https://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting(v = vs.110).aspx)を参照してください。この例あなたが望むことをするのを助けるかもしれない – Pikoh
[This(http://stackoverflow.com/questions/39540935/for-a-windows-forms-application-using-datagridview-how-can-i-check-a-value -in/39541363#39541363)が役立つ可能性があります。 – Berkay
返信いただきありがとうございます。私はどのようにして、データを表示するには、 'DataGridViewRow'を使用し' DataTable'を使用していませんか?申し訳ありませんが、私は、C# – MinhKiyo