Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据表更新后重新处理RowPrePaint_C#_.net_Winforms_Datagridview - Fatal编程技术网

C# 数据表更新后重新处理RowPrePaint

C# 数据表更新后重新处理RowPrePaint,c#,.net,winforms,datagridview,C#,.net,Winforms,Datagridview,我有一个datagridview,向用户突出显示“问题”单元格。然后,用户可以右键单击并选择update,这将更改数据源(datatable)中的数据并重新处理该行。这一切都很好 要高亮显示单元格,我将在单元格显示时进行RowPrePaint处理。这似乎不会在数据表更新后触发事件 在考虑这个过程时,我认为这是正确的操作,因为datagrid已经显示,在我退出表单并重新输入之前,RowPrePaint不会在调试器中再次被点击 我尝试使用mydgView.Refresh();但这似乎没什么作用。。。

我有一个datagridview,向用户突出显示“问题”单元格。然后,用户可以右键单击并选择update,这将更改数据源(datatable)中的数据并重新处理该行。这一切都很好

要高亮显示单元格,我将在单元格显示时进行RowPrePaint处理。这似乎不会在数据表更新后触发事件

在考虑这个过程时,我认为这是正确的操作,因为datagrid已经显示,在我退出表单并重新输入之前,RowPrePaint不会在调试器中再次被点击

我尝试使用mydgView.Refresh();但这似乎没什么作用。。。。我可以强制RowPrePaint在选定行上重建视图吗

        private void dgvUsers_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
    {
        bool bIDWarning = Convert.ToBoolean(dgvUsers.Rows[e.RowIndex].Cells["IDWarning"].Value.ToString());
        Color IDColor = Color.FromArgb( Convert.ToInt32( dgvUsers.Rows[e.RowIndex].Cells["nIDColor"].Value));


        if ( bIDWarning )
        {
            dgvUsers.Rows[e.RowIndex].Cells["ID"].Style.BackColor = IDColor;// Color.Yellow;

            dgvUsers.Rows[e.RowIndex].Cells["ID"].ToolTipText = dgvUsers.Rows[e.RowIndex].Cells["ToolTip"].Value.ToString();

        }

我已经编辑了你的标题。请参见“”,其中的共识是“不,他们不应该”。你不需要使用
RowPrePaint
来做这样的事情,无论如何,你想要什么还不清楚,你应该发布一些代码片段来展示你如何使用
RowPrePaint
,以及一些你为什么要使用这样的事件,我想可能有一些简单的方法可以替代。这就是我发现的给单个细胞着色的方法。。。还有其他我不知道的方法吗?