DataGridView控件之多行数据的选中与删除步骤:
(1)创建Windows窗体程序,并在窗体上防止一个dataGridView控件名字为dataGridView1,两个按钮控件(ADD和Delete),名字分别为AddBtn、DeleteBtn。
(2)在窗体的加载程序中,设置dataGridView1控件的属性,代码如下:
/// <summary>
/// 窗体加载的事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
//设置控件选中选中的模式
//单击单元格或行标题可以选中整行
this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
//单击单元格或列标题可以选中整列
//this.dataGridView1.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
//选中单个或多个单元格
//this.dataGridView1.SelectionMode = DataGridViewSelectionMode.CellSelect;
//不允许用户调整列的排列顺序
this.dataGridView1.AllowUserToOrderColumns = false;
//不允许用户调整列的大小
this.dataGridView1.AllowUserToResizeColumns = false;
//不允许用户调整行的大小
this.dataGridView1.AllowUserToResizeRows = false;
}
(3) AddBtn按钮的单击事件中实现为dataGridView控件静态添加行数据的功能,具体代码如下:
/// <summary>
/// 按钮单击事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AddBtn_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
//添加新的一行
this.dataGridView1.Rows.Add();//此操作添加的行为非共享行
dataGridView1.Rows[i].Cells[0].Value = (i + 1).ToString();
dataGridView1.Rows[i].Cells[1].Value = (i + 5).ToString();
dataGridView1.Rows[i].Cells[2].Value = (i + 10).ToString();
dataGridView1.Rows[i].Cells[3].Value = (i + 1).ToString();
}
}
(4)DeleteBtn按钮的单击事件中实现删除dataGridView1控件中选中行的数据的功能,具体代码如下:
/// <summary>
/// 按钮单击事件处理函数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void DeleteBtn_Click(object sender, EventArgs e)
{
try
{
//选中的行数
int iCount = dataGridView1.SelectedRows.Count;
if (iCount < 1)
{
MessageBox.Show("Delete Data Fail!", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Error);
return;
}
if (DialogResult.Yes == MessageBox.Show("是否删除选中的数据?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information))
{
for (int i = 0; i < this.dataGridView1.Rows.Count-1; i++) //循环遍历所有行
{
<span style="white-space:pre"> </span>if(true==this.dataGridView1.Rows[i].Selected)//当前行处于选中状态,则将其删除
<span style="white-space:pre"> </span>this.dataGridView1.Rows.RemoveAt(i);
}
//删除任意行数据后,应该刷新dataGridView表格,使索引值从上至下按大小顺序排序
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
dataGridView1.Rows[i].Cells[0].Value = i + 1;
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
注意:由于将dataGridView控件的SelectMode属性设置为DataGridViewSelectionMode.FullRowSlect属性,所以在单击dataGridView控件时无论是单击单元格还是单击行标题都会选中改行。如果想实现单击某个单元格只选中该单元格可以设置SelectMode属性值为DataGridViewSelectMode.CellSelect。同理如果要实现单击单元格选中一列的功能可以设置SelectMode属性值为DataGridViewSelectMode.FullColumnSelect.