溫馨提示×

怎樣處理C# DataGridView多選事件

c#
小樊
87
2024-09-16 09:31:23
欄目: 編程語言

在C#中,DataGridView控件默認不支持多選操作

  1. 設(shè)置DataGridView的SelectionMode屬性為FullRowSelect或者RowHeaderSelect。這將允許用戶通過點擊行頭部來選擇整行。
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
  1. 修改DataGridView的MultiSelect屬性為true。這將允許用戶按住Shift鍵或Ctrl鍵進行多選。
dataGridView1.MultiSelect = true;
  1. 為DataGridView添加KeyDown事件處理程序,以便在按下Ctrl鍵時進行多選。
dataGridView1.KeyDown += new KeyEventHandler(dataGridView1_KeyDown);
  1. 在KeyDown事件處理程序中,檢查是否按下了Ctrl鍵。如果是,則將DataGridView的MultiSelect屬性設(shè)置為true,否則設(shè)置為false。
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Control)
    {
        dataGridView1.MultiSelect = true;
    }
    else
    {
        dataGridView1.MultiSelect = false;
    }
}
  1. 為DataGridView添加CellMouseClick事件處理程序,以便在單擊單元格時進行多選。
dataGridView1.CellMouseClick += new DataGridViewCellMouseEventHandler(dataGridView1_CellMouseClick);
  1. 在CellMouseClick事件處理程序中,檢查是否按下了Ctrl鍵。如果是,則將所選行的Selected屬性設(shè)置為與當前狀態(tài)相反的值。
private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (Control.ModifierKeys == Keys.Control)
    {
        if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
        {
            dataGridView1.Rows[e.RowIndex].Selected = !dataGridView1.Rows[e.RowIndex].Selected;
        }
    }
}

現(xiàn)在,DataGridView控件應(yīng)該可以處理多選事件了。用戶可以按住Ctrl鍵并單擊行頭部或單元格來選擇多行。

0