DataGridView使用技巧四:刪除行操作


一、無條件的刪除行

默認時,DataGridView是允許用戶進行行的刪除操作,選中要刪除的行,按Delete鍵可以刪除,該操作沒有任何提示(只是刪除界面顯示的數據,不會真實刪除數據庫中的數據)。如果設置DataGridView對象的AllowUserToDeleteRows屬性為False,用戶將被禁止刪除行。

示例:禁止DataGridView刪除行

1 this.dgv_PropDemo.AllowUserToDeleteRows = false;

但是,通過行的Remove或者RemoveAt還是可以刪除行的。

示例:

1 //刪除選中的第一行
2 this.dgv_PropDemo.Rows.Remove(this.dgv_PropDemo.SelectedRows[0]);

如果DataGridView綁定的是DataView的話,通過DataView.AllowDelete也可以控制行的刪除。

二、刪除行時的條件判斷

用戶在刪除行的時候,將會引發DataGridView.UserDeletingRow事件。在這個事件里,可以判斷條件並取消刪除操作。(需要將AllowUserToDeleteRows設置為true,並且是使用鍵盤的delete鍵時才會觸發該事件)。

UserDeletingRow:行被刪除時觸發。

UserDeletedRow:行被刪除以后觸發。執行順序:先執行UserDeletingRow事件后執行UserDeletedRow事件。

示例:

 1 private void dgv_PropDemo_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
 2 {
 3        //刪除前確認
 4        if (MessageBox.Show("確認要刪除選中的行嗎?", "刪除確認", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes)
 5          {
 6              //如果不是Ok,則刪除
 7              e.Cancel = true;
 8          }
 9 }
10 
11 private void dgv_PropDemo_UserDeletedRow(object sender, DataGridViewRowEventArgs e)
12 {
13         MessageBox.Show("該行已被刪除");
14 }

三、刪除選中的行

示例:

1 foreach (DataGridViewRow row in this.dgv_PropDemo.SelectedRows)
2 {
3       if (!row.IsNewRow)
4       {
5            this.dgv_PropDemo.Rows.Remove(row);
6       }
7 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM