2015-06-17 149 views
0

我在C#中有一個WinForms應用程序,它在DataGridView中註冊支持票據,每個票據都有一個狀態,可能正在等待或完成。我想實現一個方法來驗證票是否完成,然後這個記錄不能被修改。我試過的是將DataGridView的Status列的每行中單元格的值與一個字符串進行比較,如果它們相同,則禁用更新註冊表值的按鈕。我知道它必須有其他的方式,但我是一個新手。比較DataGridView值

foreach (DataGridViewRow rows in DataGridView1.Rows) 
     { 
      if (rows.Cells[10].Value.ToString().Equals("Completed")) 
      { 
       btnUpdate.Enabled = false; 
      } 
      else 
      { 
       btnUpdate.Enabled = true; 
      } 
     } 

這是我試過的,但什麼也沒做。你能幫我解決這個問題嗎?或者給我一些關於如何完成我所需要的建議。

+0

你能解釋更多關於這個按鈕嗎?我假設你有多行,只有1個按鈕?也許你的意思是隻查看「當前」行中的Cell 10而不是每行? – Charlie

回答

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")