上周我开始尝试使用Winforms自动化一些报告。我不喜欢过渡(对你们中的一些人来说很简单)!
我目前正在使用Oracle SQL Developer创建的SQL视图中显示数据。我通过使用DataGridView任务来选择表并显示它来加入数据(这似乎是最直接的方法)。
所有数据都显示正常。但是,我现在想要访问表格中的单元格。我希望能够根据它们的值改变单元格的颜色,并在需要时提取一些数据。
要访问数据并突出显示我希望执行此类操作的行
protected void MyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
int theValue = Convert.ToInt32(e.Row.Cells[0].Text);
if (theValue>0)
e.Row.Cells[0].BackColor = System.Drawing.Color.Red
}
}
它不起作用,因为事件未触发。我想我应该将数据绑定到gridview,但我已经通过设计器加载了所有数据。这是问题吗?我不知道如何自己编写代码,我之前尝试过,但它却摇摆不定。
此外,当我尝试通过设计器更改数据库的SQL查询时,它不起作用。我想我会以这个速度失去理智!
答案 0 :(得分:1)
您需要在DataGridView上使用CellFormatting事件,如此
private void MyGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if ((int)MyGridView.Rows[e.RowIndex].Cells[0].Value > 30)
{
e.CellStyle.BackColor = System.Drawing.Color.Red;
e.CellStyle.ForeColor = System.Drawing.Color.White;
}
}