DataGridView控件之多行数据的选中与删除功能

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.

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页