2012-04-27 73 views
1

我的C#winform有一個datagridview,當我點擊更新按鈕時,我應該輸入什麼代碼來檢查是否有任何單元格已被編輯?檢查datagridview是否被編輯過

我只需要有一個真或假。

謝謝。

============================================== =============================

我的現有代碼:

#region Edit Records 
     private void InProSysAdministrationEventsUpdateButton_Click(object sender, EventArgs e) 
     { 
      if (MessageBox.Show("Please Click Ok to Edit the Events", "Confirmation", MessageBoxButtons.OKCancel) == DialogResult.OK) 
      { 
       ManipulateData.UpdateData(connectionString, tblconn, tblscmd, tbldataadaptor, tbldatatable, cmbuilder, "usp_readallevents", readalleventsdataGridView); 
      } 
     } 
#endregion 

我需要做以下:

1)編輯用戶點擊

2)系統檢查任何細胞是否已經編輯

3)如果沒有編輯單元格,它會的MessageBox.show( 「不可更改完成。」)

4)否則,它會更新數據庫。

回答

3

你看過DataGridView.CellValueChanged事件嗎? MSDN

將是相當簡單,只寫了這樣的處理程序,並設置標誌,或執行任何你想要的動作。

的你會如何執行,這將是一個例子:

protected override void OnLoad(EventArgs e) 
    { 
     myDataGridView.CellValueChanged += new DataGridViewCellEventHandler(
     myDataGridView_CellValueChanged); 
    } 

    private void myDataGridView_CellValueChanged(
    object sender, DataGridViewCellEventArgs e) 
    { 
     //some very crude examples of actions you might want to perform when the event handler is triggered. 
     myObject.update(); 
     //or something else like 
     myObject.isUpdatable = true; 
    } 

至於點數3,一個MsgBox可能不是告知非關鍵事件的用戶的最佳方式。他們很可能已經知道他們沒有輸入任何信息,並且您可以通過標記所需的信元或其他任何方式來提供這種反饋。食物的思想。

在未來,我建議搜索MSDN你正在使用的類,並搜索事件,方法或屬性的您正在尋找的類型,並查看是否有匹配。 也有很多有用的例子。

0
int x=0;  
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) 
{ 
    x = 1; 
} 

if(x==1) //this means that gridView has been updated