DatagridView報”對象的目前狀態使該操作無效”

來源:互聯網
上載者:User

最近在項目中用經常用到DatagridView來呈現資料,並且資料要可添加和編輯,於是綁定的時候就用到了BindingList.

在需要可以添加新行的情況下很容易就報"對象的目前狀態使該操作無效。"這個異常.

經反覆測試檢查,發現代碼並沒有錯誤,並且從異常資訊來看,該異常應該是在控制項內部調用時引發的.當編輯焦點進入到新行然後離開,控制項會自動添加(在未編輯的情況下)一行空的(自訂類的預設值)資料,並且離開後控制項又未刪除這個行資料.如果下次再執行這樣的操作,原本繫結資料就會出現重複資料(兩個完全相同的自訂類的預設值),這樣就引發了這個異常.

目前我只找到這一種解決方案,就是在控制項儲存格離開事件中取消編輯模式.

View Code

 1 private void dgvServiceItem_CellLeave(object sender, DataGridViewCellEventArgs e) 2         { 3             if (e.RowIndex >= 0 && e.ColumnIndex >= 0) 4             { 5                 if (dgvServiceItem.Rows[e.RowIndex].IsNewRow) 6                 { 7                     dgvServiceItem.CancelEdit(); 8                 } 9             }10         }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.