C#Winform中DataGridView控件根据鼠标左右键获取单元格值或者行列

这篇具有很好参考价值的文章主要介绍了C#Winform中DataGridView控件根据鼠标左右键获取单元格值或者行列。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有多种方法可以获取单元格的值或者行列,此处选用了两种方式去获取分别用了CurrentCell方法和Rows[].Cells[]的方法去获取行列值文章来源地址https://www.toymoban.com/news/detail-491569.html

鼠标左键获取单独行列值

  • 此处获取左键行列值的触发条件是表格中数据变化获取,对应DataGridView事件CellValueChanged。
  • 用方法CurrentCell中的Value,RowIndex,ColumnIndex,分别对应了鼠标左键单元格选中的值,行,列。e.RowIndex>=0的判断要加上不加上容易报错。
private void dgvSRE_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            object value = null;
            int ri = 0;
            int ci = 0;
            if (e.RowIndex >= 0)
            {
                value = dgvSRE.CurrentCell.Value;
                ri = dgvSRE.CurrentCell.RowIndex;
                ci = dgvSRE.CurrentCell.ColumnIndex;
            }
           
        }

鼠标右键获取行

  • 此处获取右键行的触发条件是根据鼠标是否按下获取,对应DataGridView事件CellMouseDown。
  • 用Rows[].Cells[]方法去获取值,第一个判断是判断是判断是否由鼠标右键完成选取工作
  • 方法Selected是判断选取行是否处于高亮状态不是的话,赋予高亮状态。
int cellRi = 0;
private void dgvSRE_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    if (dgvSRE.Rows[e.RowIndex].Selected == false)
                    {
                        dgvSRE.ClearSelection();
                        dgvSRE.Rows[e.RowIndex].Selected = true;
                    }
                    cellRi = dgvSRE.Rows[e.RowIndex].Index;
                }
            }
        }

鼠标右键获取行列值

  • 触发事件同上,一般情况下右键的时候选取的表格不会高亮所有需要判断和赋予高亮值才能方便观察,只需要在上面的基础上稍微更改就可以
 private void dgvSRE_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    /*if (dgvSRE.Rows[e.RowIndex].Selected == false)
                    {
                        dgvSRE.ClearSelection();
                        dgvSRE.Rows[e.RowIndex].Selected = true;
                    }*/
                    if(dgvSRE.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected == false)
                    {
                        dgvSRE.ClearSelection();
                        dgvSRE.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
                    }
                    var cellRi = dgvSRE.Rows[e.RowIndex].Cells[e.ColumnIndex];
                    object val = dgvSRE.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                }
            }
        }

注意事项

  1. CurrentCell方法不是每个事件都可以使用有些事件该方法不能很好的获取到你想要的行列值这点要注意,所以推荐一般使用Rows[].Cells[]的方法去获取行列值。
  2. 注意存储行列时变量的范围,建议使用var或者object获取在根据个人需求进行转换
  3. 最后提醒一些判断也是需要的不然容易未获取到值而报错,或者鼠标左右键未判断而跑进来。

到了这里,关于C#Winform中DataGridView控件根据鼠标左右键获取单元格值或者行列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Winform中DataGridView设置前景色、单元格背景色、标题栏样式、禁止改变高宽、不显示空白行、清除选中样式、填充数据源、设置标题、设置单列宽度

    Winform中使用DataGridView实现加载数据并显示在led大屏中。 需要设置整个DataGridView的前景色、背景色、单元格颜色、标题栏样式、禁止 改变行高、列宽、不显示新增行、取消选中样式等。 注: 博客: 霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主 1、DateGridView实现黑

    2023年04月15日
    浏览(41)
  • C#:WinForm应用程序中用鼠标移动控件位置

    有时候在WinForm程序中,我们需要用鼠标移动程序窗口中的对象(例如图片对象等)的位置,可以通过定义控件的鼠标事件来实现。以命名为pictureBox1的PictureBox控件为例,分别定义它的MouseDown(按下鼠标按钮)、MouseMove(移动鼠标)、MouseUp(释放鼠标按钮)三个事件,代码如

    2024年02月16日
    浏览(32)
  • C# Winform DataGridView 数据刷新问题

    目录 一、问题 二、创建项目 三、绑定空的数据源 四、绑定有数据的数据源 五、修改绑定的数据源 六、解决数据源刷新问题 七、解决刷新数据界面闪烁 DataGridView 是比较常用的表格控件,在 DataGridView 中显示数据, 一般使用 dataGridView1.DataSource = 数据源,来绑定数据,数据

    2024年02月12日
    浏览(33)
  • C# winform 将excel表格导入datagridView 的方式

    方式一: 方式二:

    2024年02月05日
    浏览(36)
  • C#Winform中的DataGridView的自动调整列宽设置

    C#Winform中的DataGridView的自动调整列宽设置属性为AutoSizeColumnMode 的枚举值如下: 1、AllCells 调整列宽,以适合该列中的所有单元格的内容,包括标题单元格。   2、AllCellsExceptHeader 调整列宽,以适合该列中的所有单元格的内容,不包括标题单元格。   3、ColumnHeader 调整列宽,以

    2024年02月13日
    浏览(22)
  • C# Winform中在DataGridView中添加Button按钮,操作Button按钮

    .Net的DataGridView控件中,提供了一种列的类型,叫 DataGridViewButtonColumn ,这种列类型是展示为一个 按钮,可以给button赋予相应的text,并且,此button可以用来做处理事件的判断依据。 DataGridViewButtonColumn,虽然在UI展现上,是一个BUTTON的样子,但是,它的实际形态,并不是传统意

    2024年02月07日
    浏览(39)
  • Winform中DatagridView 表头实现一个加上一个checkBox,实现全选选项功能

    点击checkBox1或者直接在第一列列表头点击即可实现 我的datagridview叫dgv 我在datagridview已经默认添加了一个DataGridViewCheckBoxColumn ,勾选时value为1,不勾选时value为0 拖动组件,然后绑定事件 点击事件 事件代码: 这种需要自己弄一个DataGridViewCheckBoxColumn 文件位置 详细代码 : ==D

    2024年02月13日
    浏览(29)
  • DataGridView 控件分页

    在使用 Winform 开发桌面应用时,工具箱预先提供了丰富的基础控件,利用这些基础控件可以开展各类项目的开发。但是或多或少都会出现既有控件无法满足功能需求的情况,或者在开发类似项目时,我们希望将具有相同功能的模板封装成一个标准控件等,在这些场景下, wi

    2024年02月16日
    浏览(28)
  • C#——表格开发之DataGridView控件

    目录 一、概要 二、手动填充数据 1、如何手动填充数据 2、如何插入一行数据 3、如何修改单元格值 三、DataGridView控件绑定数据源 1、概述 2、将DataGridView绑定到BindingSource 使用DataGridView控件,您可以显示和编辑来自许多不同类型数据源的表格数据。 DataGridView控件为显示数据提

    2024年02月03日
    浏览(32)
  • C# DataGridView控件的基础应用实例

      DataGridView我把他叫做网格数据控件 。我们在显示表格数据的时候,经常会用想到用它, 他就像Excel表格一样。我们知道只要是数据表,就一定逃不掉表的增删查改操作。   该篇,我在VS2019的环境下通过demo实例来实现DataGridView控件的一系列功能,包括添加一行数据、切

    2023年04月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包