比较DataGridView值

时间:2015-06-17 18:00:19

标签: c# winforms datagridview

我在C#中有一个WinForms应用程序,它在DataGridView中注册支持票证,每个票证都有一个状态,可能是待处理或已完成。我想实现一个方法来验证票证是否完成,然后无法修改此记录。我尝试的是比较DataGridView的Status列的每一行中的单元格的值与字符串,如果它们相等,则禁用更新注册表值的按钮。我知道它必须有其他方式,但我是一个新手。

<li>
    <div id="1" class="w20" style="float:left">Should take 20%</div>
    <div id="2" class="w30" style="float:left">Should take 30%</div>
    <div id="3" style="float:left;width:2em;background-color:yellow;">Something</div>
    <div id="4" style="float:left;width:1em;background-color:orange;">&nbsp;/&nbsp;</div>
    <div id="5" style="float:left;width:2em;background-color:red;">Something</div>
    <div id="6" class="w30" style="float:left">Should take 30%</div>
    <div id="7" class="w20" style="float:left">Should take 20%</div>
</li>


.w20
{
    background-color:green;
    width: -moz-calc((100% - 5em) * 0.2);
    /* WebKit */
    width: -webkit-calc((100% - 5em) * 0.2);
    /* Opera */
    width: -o-calc((100% - 5em) * 0.2);
    /* Standard */
    width: calc((100% - 5em) * 0.2);
}


.w30
{
    background-color:blue;
    width: -moz-calc((100% - 5em) * 0.3);
    /* WebKit */
    width: -webkit-calc((100% - 5em) * 0.3);
    /* Opera */
    width: -o-calc((100% - 5em) * 0.3);
    /* Standard */
    width: calc((100% - 5em) * 0.3);
}

这是我尝试过的,但什么也没做。你能帮帮我吗?或者就如何完成我需要的东西给我一些建议。

1 个答案:

答案 0 :(得分:0)

使用RowEnter事件:

private void DataGridView1_RowEnter(object sender,DataGridViewCellEventArgs e)
{
  btnUpdate.Enabled=!DataGridView1.Rows[e.RowIndex].Cells[10].Value.ToString().Equals("Completed") ;  
}

也许,在填写gridview之后需要以下内容 (我不记得在初始化时是否引发了RowEnter事件。)

btnUpdate.Enabled=DataGridView1.CurrentRow!=null &&
  !DataGridView1.CurrentRow.Cells[10].Value.ToString().Equals("Completed")