溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

DataGridView UserDeletingRow事件 提示控制

發(fā)布時(shí)間:2020-05-31 06:09:11 來(lái)源:網(wǎng)絡(luò) 閱讀:847 作者:起名好難 欄目:編程語(yǔ)言

   DataGridView的行數(shù)據(jù)在用鍵盤(pán)Delete刪除時(shí),會(huì)觸發(fā)這個(gè)事件UserDeletingRow,由于項(xiàng)目具體要求要實(shí)現(xiàn)多選的刪除,這樣如果對(duì)于刪除數(shù)據(jù)進(jìn)行提示會(huì)出現(xiàn)多次,顯然不符合要求;

我想到兩種方法:

1.KeyPree事件,捕獲Delete鍵,處理;

2.用DataGridView的UserDeletingRow事件,但是這樣會(huì)出現(xiàn)提示次數(shù)等于刪除的數(shù)據(jù)條數(shù),不符合要求;經(jīng)過(guò)探索找到一個(gè)方法,先貼代碼:


//刪除事件
       private void dgvBreakLayer_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)
       {
           DataGridViewSelectedRowCollection dr = dgvBreakLayer.SelectedRows;
           if (dr == null)
           {
               e.Cancel = true;
           }
           bool flag = MessageBox.Show("確認(rèn)刪除選中數(shù)據(jù)嗎?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes;
           if (flag)
           {
               e.Cancel = true;
               for (int i = 0; i < dr.Count; i++)
               {
                   dgvBreakLayer.Rows.RemoveAt(dr[i].Index);
               }
               dgvBreakLayer.ClearSelection();
           }
           else
           {
               e.Cancel = true;
           }
       }



思路:在第一次觸發(fā)事件時(shí),把選中的數(shù)據(jù)刪除掉,關(guān)鍵是將該事件的后續(xù)處理中斷,即:e.Cancel賦值為T(mén)rue



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI