English 中文(简体)
改变数据网格中的背书
原标题:change the backcolor in a datagridview

I tried to change the backcolor in a specific column when the cell value changed. I didn t find the method to do that and I don t know how to do that.

ok ----> backcolor in green.
nok ----> backcolor in red.

非常感谢您的帮助。

private void timer2_Tick(object sender, EventArgs e)
{
    int count = 0;
    foreach (DataRow dr in ds.Tables[0].Rows)
    {
        String StartCourse = dr[0].ToString();
        string EndCourse = dr[1].ToString();
        DateTime SystemTime = Convert.ToDateTime(DateTime.Now);
        DateTime StartTime = Convert.ToDateTime(StartCourse);
        DateTime EndTime = Convert.ToDateTime(EndCourse);

        if (StartTime.TimeOfDay.Ticks <= SystemTime.TimeOfDay.Ticks && SystemTime.TimeOfDay.Ticks < EndTime.TimeOfDay.Ticks)
            {
                 ds.Tables[0].Rows[count][5] = "ok";      
            }

        else
            {
                ds.Tables[0].Rows[count][5] = "nok";
            }

        count++;
        dataGridView1.DataSource = ds.Tables[0];

    }
}
最佳回答

您可以称之为这一程序:

<>蓬贝>

void ColorGrid()
{
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     {
        if (row.Cells[5].Value.ToString() == "ok") 
        {
            row.DefaultCellStyle.BackColor = Color.Green; 
        }
        else
        {
            row.DefaultCellStyle.BackColor = Color.Red; 
        }
     }
}
问题回答

为此:

 foreach (DataGridViewRow row in this.DataGridView1.Rows)
        {
            if (row.Cells[5].Text == "ok")
            {
                row.DefaultCellStyle.BackColor = Color.Green;
            }
            else
            {
                row.DefaultCellStyle.BackColor = Color.Red;
            }
        }

关于

我在我自己的项目中这样做。

 foreach (DataGridViewRow row in this.dataGridView1.Rows)
 {

     row.DefaultCellStyle.BackColor = (row.Cells[5].Text == "ok")? Color.Green:Color.Red;
 }

If that still didn t work, try delete that datagridview and add it again. Be sure to name it again as dataGridView1 and attached its corresponding events.





相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签