首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridViewRow.DefaultCellStyle格式设置

DataGridViewRow.DefaultCellStyle格式设置
EN

Stack Overflow用户
提问于 2013-06-11 14:02:01
回答 3查看 735关注 0票数 0

我有这个代码附加在一个DataGridViewRowValidating事件

代码语言:javascript
复制
private void dgvSrc_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
{
    DataGridView dgv = sender as DataGridView;

    if (dgv.Rows[e.RowIndex].Cells["fullPath"].Value.ToString().Equals("none"))
        dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
    else
        dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
}

这是有效的,但不是自动的,您需要聚焦或首先单击,然后选择另一行,以查看其ForeColor是否更改为红色。我尝试使用不会自动格式化特定行的UpdateRefresh。我该如何解决这个问题呢?

EN

回答 3

Stack Overflow用户

发布于 2013-06-11 14:42:32

使用DataGridViewCellFormatting事件

代码语言:javascript
复制
dgv.CellFormatting += dgv_CellFormatting

像这样处理它

代码语言:javascript
复制
void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if(dgv.Rows[e.RowIndex].Cells["fullPath"].Value.ToString().Equals("none"))
      dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
    else
      dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
}
票数 1
EN

Stack Overflow用户

发布于 2013-06-11 14:20:36

您订阅的事件不正确。我想,你需要这个:CellValueChanged

票数 0
EN

Stack Overflow用户

发布于 2013-06-12 09:06:18

您可以在您的dgv RowPrePaint事件中执行此操作。

代码语言:javascript
复制
Private void dgvSrc_RowPrePaint(object sender, DataGridViewCellCancelEventArgs e)
{
DataGridView dgv = sender as DataGridView;

if (dgv.Rows[e.RowIndex].Cells["fullPath"].Value.ToString().Equals("none"))
    dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;
else
    dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Black;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17037452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档