大家好,datagridview 格式化所有行而不是条件中指定的行。我有一个 DataTabe 数据库,我从中加载数据 dataGridView1.DataSource = dataTable; 我在表单加载开始时像这样 dataTable.Rows.Add("What data is here") 填充数据表,我初始化列
dataTable1.Columns.Add("1");
dataTable1.Columns.Add("2");
dataTable1.Columns.Add("3");
dataTable1.Columns.Add("4");
dataTable1.Columns.Add("5");
dataTable1.Columns.Add("6");
dataTable1.Columns.Add("7");
dataTable1.Columns.Add("8");
dataTable1.Columns.Add("9");
dataTable1.Columns.Add("10");
dataTable2 = dataTable1.Clone();
dataGridView1.Columns["Column1"].DataPropertyName = "1";
dataGridView1.Columns["Column2"].DataPropertyName = "2";
dataGridView1.Columns["Column3"].DataPropertyName = "3";
dataGridView1.Columns["Column4"].DataPropertyName = "4";
dataGridView1.Columns["Column5"].DataPropertyName = "5";
dataGridView1.Columns["Column6"].DataPropertyName = "6";
dataGridView1.Columns["Column7"].DataPropertyName = "7";
dataGridView1.Columns["Column8"].DataPropertyName = "8";
dataGridView1.Columns["Column9"].DataPropertyName = "9";
dataGridView1.Columns["Column10"].DataPropertyName = "10";
在 CellFormatung 事件中
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex];
if (e.Value.GetType() != typeof(System.DBNull))
{
if (Convert.ToString(e.Value) == "1")
{
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
//dataGridView1[i, e.RowIndex].Style.BackColor = Color.FromArgb(69, 84, 78);
//dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.FromArgb(69, 84, 78);
row.DefaultCellStyle.BackColor = Color.FromArgb(69, 84, 78);
}
}
}
格式化时,我的整个datagridview都被格式化
了,只有那些单元格等于1的行才应该被格式化,在我添加了数据表之后,这才开始。在我没有使用数据库之前,一切都格式化好了
现在我无法在 datagridview 中获取所选行的索引
string Name = dataGridView1[1, dataGridView1.CurrentRow.Index].Value.ToString();
这些是我开始从数据表加载数据时开始的问题。根据需要绑定此数据库或代码为什么停止工作?
绘制行时的 RowPrePaint 事件有帮助,现在一切正常