首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >DataGridView覆盖顶部、左侧标题单元格单击(全选)

DataGridView覆盖顶部、左侧标题单元格单击(全选)
EN

Stack Overflow用户
提问于 2009-10-01 07:25:18
回答 4查看 8.4K关注 0票数 3

我想覆盖鼠标在DataGridView标题/列单元格(顶部、左侧单元格)中单击时的行为。该单元格会使所有行都被选中。相反,我想阻止它选择所有行。我看到了用于RowHeaderSelect和ColumnHeaderSelect的事件,但没有用于左上角标题单元格的事件。

有什么想法吗?我只是个盲人吗?

EN

回答 4

Stack Overflow用户

发布于 2009-10-28 19:04:37

这是当您单击该单元格时发生的情况的dissasembled代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void OnTopLeftHeaderMouseDown()
{
    if (this.MultiSelect)
    {
        this.SelectAll();
        if (-1 != this.ptCurrentCell.X)
        {
            this.SetCurrentCellAddressCore(this.ptCurrentCell.X, this.ptCurrentCell.Y, false, false, false);
        }
    }

为了防止这种行为,您有两种解决方案:

  1. 禁用多选(如果您的业务逻辑覆盖您自己的datagrid并覆盖OnCellMouseDown (如下所示)

protected override void OnCellMouseDown(DataGridViewCellMouseEventArgs e) { if (e.RowIndex == -1 && e.ColumnIndex == -1) return;base.OnCellMouseDown(e);}

票数 5
EN

Stack Overflow用户

发布于 2015-09-01 16:16:03

我知道为时已晚,但希望这能帮助到一些人。下面的代码在类似的场景中适用于我。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    private void MyDataGridView_MouseUp(object sender, MouseEventArgs e)
    {
        DataGridView.HitTestInfo hitInfo = this.MyDataGridView.HitTest(e.X, e.Y);
        if (hitInfo.Type == DataGridViewHitTestType.TopLeftHeader)
        {
            MyDataGridView.ClearSelection();
        }
     }
票数 1
EN

Stack Overflow用户

发布于 2009-11-16 19:36:10

您可以使用以下hack获得对单击事件的一些控制:)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private void dataGridView1_Click(object sender, EventArgs e)
{
    MouseEventArgs args = (MouseEventArgs)e;
    DataGridView dgv = (DataGridView)sender;
    DataGridView.HitTestInfo hit = dgv.HitTest(args.X, args.Y);
    if (hit.Type == DataGridViewHitTestType.TopLeftHeader)
    {
        // do something here
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1504620

复制
相关文章
JavaScript实现单击全选 ,再次点击取消全选
Screenshot (11).png 以下为实现思路,已测试,供参考 var allSet = document.getElementById('allSet');//获取全选按钮元素 var a = allSet.Custom;//给全选按钮自定义属性   a = 0;//自定义属性值为0 var input1 = all.getElementsByTagName('input');//获取all下的全部input标签; //给全选按钮添加点击事件,进行判断; allSet.onclick = f
李文杨
2018/03/27
1.7K0
JavaScript实现单击全选 ,再次点击取消全选
DataGridView 中合并单元格
Windows Forms DataGridView 没有提供合并单元格的功能,要实现合并单元格的功能就要在CellPainting事件中使用Graphics.DrawLine和 Graphics.DrawString 自己来“画”。 下面的代码可以对DataGridView第1列内容相同的单元格进行合并:         private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)  
跟着阿笨一起玩NET
2018/09/18
5.1K0
可视化数据库设计软件有哪些_数据库可视化编程
直观的说 1)首先,在数据库Sql server2019中新建一个数据库eg:students;
全栈程序员站长
2022/08/03
6.8K0
可视化数据库设计软件有哪些_数据库可视化编程
C#实例:datagridview单元格合并
这是替C#微信交流群群友做的一个小实例,目的就是在datagridview选择对应行以后,点击button后获取对应行的ip,并执行相应的操作,其实我觉得这样的话button没必要非放置到datagridview里面的!但是为了满足群友的需求,还是这么做了。
zls365
2020/08/19
5K0
C#实例:datagridview单元格合并
TabLayout double click 标题回顶部
背景 产品同学要求了一个很反常的需求,双击tab标题,回到页面顶部,哎,作为一名程序猿首先想到的是pk掉,无奈之下做了本功能。于是就发现了google 的sdk里面的bug,哎,写这些代码的人多半是实习生(锅先甩出去,逃~~) 实现双击回顶部 这里的实现实际上很简单,唯一难点在于怎么区分单击还是双击(tab切换)。不多说,很快就写出如下代码: tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
用户1127566
2018/06/06
1.2K0
DataGridView使用小结
1).右键点击行时选中行,并弹出操作菜单 1). 添加一个快捷菜单contextMenuStrip1; 2). 给dataGridView1的CellMouseDown事件添加处理程序: private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)         {             if (e.Button == MouseButtons.Right)             {
跟着阿笨一起玩NET
2018/09/18
2.3K0
C#学习笔记——DataGridView功能总结
5.右键点击行时选中行,并弹出操作菜单 ①. 添加一个快捷菜单contextMenuStrip1; ②. 给dataGridView1的CellMouseDown事件添加处理程序:
vv彭
2021/05/07
3.1K0
C#学习笔记——DataGridView功能总结
移除WordPress 顶部管理菜单左侧的logo 图标
在登陆状态下,WordPress 的顶部会有一条黑色的菜单,左边有一个WordPress 的logo图标,所链接的url 都是几乎用不上的。因此,如果你想移除WordPress 顶部管理菜单左侧的logo 图标,可以参考以下代码实现: 在主题的functions.php 文件下加入以下代码: function annointed_admin_bar_remove() { global $wp_admin_bar; /* Remove their stuff */ $wp_admin_bar->remove_
Jeff
2018/01/19
2.1K0
软件工程 怎样建立甘特图
甘特图(Gantt chart )又叫横道图、条状图(Bar chart)。它是以图示的方式通过活动列表和时间刻度形象地表示出任何特定项目的活动顺序与持续时间。它是在第一次世界大战时期发明的,以亨利·L·甘特先生的名字命名,他制定了一个完整地用条形图表进度的标志系统。由于甘特图形象简单,在简单、短期的项目中,甘特图都得到了最广泛的运用。
Meng小羽
2019/12/23
5.1K0
excel常用操作大全
例如,在excel中输入单位的人员信息后,如果需要在原出生年份的数字前再加两位数字,即在每个人的出生年份前再加两位数字19,如果逐个修改太麻烦,那么我们可以使用以下方法来节省时间和精力:
崩天的勾玉
2021/12/20
19.4K0
excel常用操作大全
WinForm中DataGridView验证单元格输入的是数字
     事件:DataGridView验证单元格输入的是数字,DataGridView源数据是从数据库读取的。
跟着阿笨一起玩NET
2018/09/20
2.3K0
WinForm中DataGridView验证单元格输入的是数字
华为OD机试 最左侧冗余覆盖子串
给定两个字符串s1和s2和正整数K,其中s1长度为n1,s2长度为n2, 在s2中选一个子串,满足:
梦想橡皮擦
2023/04/21
3410
微软VS Code已原生支持Jupyter笔记本,再也不用打开网页调试运行了
本月,微软给VS Code加入了一项令人感到惊喜的功能:直接在编辑器中运行调试Jupyter Notebook,而无需任何第三方插件。
量子位
2019/10/25
5.5K1
C#——DataGridView控件填写数据事件
但是以上这几个事件都不能实现每次向单元格输入新的内容时发生。举个例子,我单击一个单元格,则单元格进入编辑状态,CellBeginEdit事件发生,然后我输入1,2……乃至更多的东西,上述的事件也不会发生。另外Key*系列的事件也试过,也没反应。
vv彭
2021/02/04
1.6K0
Excel小技巧45:2个工作表操作习惯,利已也利他
在Excel工作表操作时,养成一些好的操作习惯,不仅方便自已,也方便他人。下面介绍两个,看大家有没有同感。
fanjy
2020/08/11
6220
Excel小技巧45:2个工作表操作习惯,利已也利他
【C#】让DataGridView输入中实时更新数据源中的计算列
本文适用Winform开发,且DataGridView的数据源为DataTable/DataView的情况。
AhDung
2018/09/13
5.3K0
【C#】让DataGridView输入中实时更新数据源中的计算列
Jupyter Notebook 使用手册
对于交互式开发和呈现数据科学项目来说,Jupyter笔记本是一个非常强大的工具。本文将指导您如何在本地计算机上设置Jupyter笔记本,以及如何开始使用它来执行Python程序。 什么是“笔记本(no
HuangWeiAI
2019/11/07
3.5K0
Jupyter Notebook 使用手册
C#—— DataGridView控件的各种操作总结(单元格操作,属性设置)
Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index Console.WriteLine(DataGridView1.CurrentCell.ColumnIndex); // 取得当前单元格的行 Index Console.WriteLine(DataGridView1.CurrentCell.RowIndex);
vv彭
2021/03/07
9.8K0
Android:隐藏标题栏/透明顶部状态栏
状态栏默认的颜色是绿色的,很丑,更改颜色可以在theme中修改对应主题的颜色。 当然,个人认为透明状态栏最为美观,下面是实现方式:
zstar
2022/06/14
2K0
【转】基于C#的WinForm中DataGridView控件操作汇总
Console.WriteLine(DataGridView1.CurrentCell.Value);
静谧的小码农
2019/06/16
5.4K0

相似问题

Datagridview首先单击标题单元格异常

16

以编程方式单击dataGridView标题单元格

20

向C#中的DataGridView列标题添加全选

13

试图在CSS中使标题图像覆盖左侧、顶部和右侧。

12

顶部栏覆盖网页标题

226
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文