C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

C# DataGridView中实现勾选存储数据和右键删除数据的完整攻略如下:

1. 实现勾选存储数据

1.1. 勾选框的添加

在DataGridView控件中显示勾选框需要在列头添加一个CheckBox,将DataGridView的列属性的HeaderCell属性设置为DataGridViewCheckBoxColumn类型,示例代码如下:

DataGridViewCheckBoxColumn checkBoxColumn = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Insert(0, checkBoxColumn);
checkBoxColumn.HeaderText = "勾选";
checkBoxColumn.Name = "checkBoxColumn";

1.2. 获取勾选数据

首先需要定义一个Model来存储DataGridView中每一行数据,然后在勾选框的CellContentClick事件中获取勾选状态,并将勾选的行存储到List中,示例代码如下:

public class Model
{
    public bool Checked { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

List<Model> list = new List<Model>();

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (e.ColumnIndex == 0 && e.RowIndex >= 0)
    {
        bool isChecked = Convert.ToBoolean(dataGridView1.Rows[e.RowIndex].Cells[0].Value);
        string name = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells[1].Value);
        int age = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[2].Value);

        if (isChecked)
        {
            Model model = new Model()
            {
                Checked = isChecked,
                Name = name,
                Age = age
            };
            list.Add(model);
        }
        else
        {
            Model model = list.FirstOrDefault(x => x.Name == name && x.Age == age);
            list.Remove(model);
        }
    }
}

1.3. 存储勾选数据

将获取的勾选数据存储到数据库中或者进行其他处理即可。

2. 右键删除数据

2.1. 右键菜单的添加

在DataGridView控件中添加右键菜单需要在DataGridView上添加一个ContextMenuStrip,然后将DataGridView的ContextMenu属性设置为该ContextMenuStrip,示例代码如下:

ContextMenuStrip menuStrip = new ContextMenuStrip();
ToolStripMenuItem deleteItem = new ToolStripMenuItem();
deleteItem.Text = "删除";
deleteItem.Click += new EventHandler(deleteItem_Click);
menuStrip.Items.Add(deleteItem);
dataGridView1.ContextMenuStrip = menuStrip;

2.2. 删除数据

在右键菜单的Click事件中获取选中的行,然后将选中的行从DataGridView中删除,示例代码如下:

private void deleteItem_Click(object sender, EventArgs e)
{
    foreach (DataGridViewRow row in dataGridView1.SelectedRows)
    {
        string name = Convert.ToString(row.Cells[1].Value);
        int age = Convert.ToInt32(row.Cells[2].Value);
        Model model = list.FirstOrDefault(x => x.Name == name && x.Age == age);
        list.Remove(model);
        dataGridView1.Rows.Remove(row);
    }
}

以上就是使用C# DataGridView中实现勾选存储数据和右键删除数据的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# DataGridView中实现勾选存储数据和右键删除数据(示例代码) - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Ajax获取回调函数无法赋值给全局变量的问题

    Ajax获取回调函数无法赋值给全局变量的问题攻略 问题描述 在使用Ajax进行异步请求时,有时候我们希望将获取到的数据赋值给全局变量,以便在其他地方使用。然而,由于Ajax是异步执行的,回调函数在数据返回之前就已经执行完毕,导致无法直接将数据赋值给全局变量。这就是所谓的“Ajax获取回调函数无法赋值给全局变量的问题”。 解决方案 为了解决这个问题,我们可以采…

    other 2023年7月29日
    00
  • vue中页面跳转的几种方法总结

    在Vue中,页面跳转是一个非常常见的需求。本文将总结几种Vue中页面跳转的方法,包括路由跳转、组件跳转和页面刷新等。 1. 路由跳转 Vue中的路由跳转是通过Vue Router实现的。Vue Router是Vue.js官方的路由管理器,可以实现单页应用的路跳转。以下是一个简单的路由跳转示例: <template> <div> &lt…

    other 2023年5月7日
    00
  • Java中缀表达式转后缀表达式实现方法详解

    Java中缀表达式转后缀表达式实现方法详解 在Java中,我们可以使用栈(Stack)数据结构来实现将中缀表达式转换为后缀表达式的算法。下面是详细的步骤: 创建一个空栈和一个空字符串,用于存储后缀表达式。 从左到右遍历中缀表达式的每个字符。 如果当前字符是操作数(数字或变量),则将其添加到后缀表达式字符串中。 如果当前字符是左括号('(‘),则将其压入栈中。…

    other 2023年8月5日
    00
  • 通过adb命令发送广播

    通过adb命令发送广播 Android调试桥(Android Debug Bridge,简称ADB)是一种通用的调试工具,它可以在计算机和Android设备之间建立连接,使得开发者可以通过命令行终端或使用ADB客户端进行Android设备的调试、开发、测试等一系列操作。其中,ADB中有一个很常用的命令就是发送广播,本文将详细讲解通过ADB命令发送广播的方法。…

    其他 2023年3月29日
    00
  • jshidden属性

    当然,我可以为您提供详细的“jshidden属性”的完整攻略,包括两个示例说明。 jshidden属性 在HTML中,jshidden属性用于隐藏元素使其在页面上不可见。在本教程中,将介绍jshidden属性的用法和示例。 语法 jshidden属性语法如下: <div jshidden></div> 示例 以下是两个示例,说明如何在…

    other 2023年5月7日
    00
  • Android实现左滑删除列表功能

    Android实现左滑删除列表功能攻略 1. 添加依赖库 首先,在项目的build.gradle文件中添加以下依赖库: implementation ‘androidx.recyclerview:recyclerview:1.2.0’ implementation ‘it.xabaras.android:recyclerview-swipedecorator…

    other 2023年9月7日
    00
  • vue-cli3项目升级到vue-cli4 的方法总结

    请听我详细讲解如何将已有的 vue-cli3 项目升级到 vue-cli4。 1. 概述 vue-cli3 和 vue-cli4 的差异在于,vue-cli4 对于项目结构的更改和插件的升级,更好地支持了现代化的前端技术(Babel7,Webpack4,TypeScript 等),提供了更好的性能和稳定性。因此,升级到 vue-cli4 是必要的,尤其是如果…

    other 2023年6月27日
    00
  • 13个mongodbgui可视化管理工具 总有一款适合你

    以下是关于“13个mongodbgui可视化管理工具总有一款适合你”的完整攻略,过程中包含两个示例。 背景 MongoDB是一种非关系型数据库,其数据存储方式与传统的关系型数据库不同。在使用MongoDB时,有时需要使用可视化管理工具来方便地管理数据库。本攻略将介绍13个MongoDB可视化管理工具,帮助用户选择适合自己的工具。 基本原理 MongoDB可视…

    other 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部