关于DataGridView的ClearSelection方法
最近做winform项目,遇到一个问题。 纠结了几天,最终解决了,记录一下!
新建一个Form窗体,拽一个DataGridView上去,然后写一个方法
private void BindData()
{
DataTable dt = xxxxxxx;
dgvFormDetail.AutoGenerateColumns = false;
dgvFormDetail.DataSource = dt;
dgvFormDetail.ClearSelection();
}
调用dgvFormDetail.ClearSelection();,本意是清除所有数据行的选中状态,让数据绑定之后不要有任何的默认选中。
把BindData放在页面的构造方法里面
public QingLingForm()
{
InitializeComponent();
BindData();
}
结果发现加载出来的数据行的第一行依然是蓝色的选中状态的颜色。 貌似dgvFormDetail.ClearSelection();这句没起作用?
搜索网上发现好多人也遇到了这个问题,解决方案五花八门。
其中stackoverflow上面有个帖子,有个人的留言提醒了我
https://stackoverflow.com/questions/5960897/remove-blue-colored-row-from-datagridview-winforms
大意是这个ClearSelection();方法必须是当你的datagirdview在展示状态时才有效,
那就是说问题出在加载顺序上了!!!
BindData放在构造方法里面,可能执行的时候DataGridView还没绘制完成,调用ClearSelection当然不会起作用!!!
那么BindData放在哪里合适呢,有两种方式:
可以重写Form的protected virtual void OnLoad(EventArgs e);方法,
overide这个方法,然后把BindData放到这里面,可以!
protected override void OnLoad(EventArgs e)
{
BindData();
}
还可以给Form指定Load事件的方法,把BindData()放到Form_Load里面
private void Form_Load(object sender, EventArgs e)
{
BindData();
}
两个方法其实是一样的,不同方式而已,并且程序只会执行其中一个。 一旦override了OnLoad事件,Form_Load就不会执行了。
关于DataGridView的ClearSelection方法的更多相关文章
- 解决winform datagridview的ClearSelection无效问题
因为把方法放在了界面的构造方法里,此时datagridview还没绘制出来,所以ClearSelection方法无效,放在control或form的load方法里就没问题了 参考:https://ww ...
- winfrom导出DataGridView为Excel方法
声明:此方法需要电脑安装Excel软件 需要类库:Microsoft.Office.Interop.Excel.dll 可百度自行下载 方法代码: /// <summary> /// 导出 ...
- DataGridView 绑定数据方法
DataGridView控件用于显示来自多种外部数据源中的数据,用户可以在此控件添加行和列,并可以填充数据. 如要让DataGridView显示数据库中的数据,只需要将此控件绑定到挑用数据库的数据 ...
- vb.net datagridview 使用方法
目录: 1. 取得或者修改当前单元格的内容 2. 设定单元格只读 3. 不显示最下面的新行 4. 判断新增行 5. 行的用户删除操作的自定义 6. 行.列的隐藏和删除 7. 禁止列或者行 ...
- DataGridView操作
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...
- DataGridView控件
DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需要的特 ...
- C# winform DataGridView
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...
- C# winform DataGridView操作 (转)
C# DataGridView控件动态添加新行 DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如 ...
- C#中DataGridView控件使用大全
DataGridView 动态添加新行: DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动 ...
随机推荐
- chrome启动参数设置
chrome禁止本地浏览时加载本地其他文件,可以采用添加启动参数的方式来支持 添加参数为 --allow-file-access-from-files 或者 --disable-web-securi ...
- python动态爬取网页
简介 有时候,我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现,我们要提取的网页元素并不在我们下载到的HTML之中,尽管它们在浏览器里看起来唾手可得. 这说明我们想要的元素是在我 ...
- libevent源码深度剖析六
libevent源码深度剖析六 ——初见事件处理框架 张亮 前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析 lib ...
- Android selector中的item的顺序
在selector中,要将默认状态的item放在最后面,因为一旦前面的item满足匹配条件,后面的item就不会去匹配.因此,把默认状态的item放在前面的话,后面的item没有执行的机会
- jQuery 对象和 json 之间的转换
JSON.parse() json 转换成 对象 JSON.stringify() 对象转换成json 想问下广大网友大神 js 里面有数组转换或者转换成数组的函数么?小弟等--
- php格式化时间戳显示友好的时间
在项目中时间一律显示为2014-10-20 10:22显得很呆板.在微博.QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式.那么用php怎么实现呢? 大体 ...
- AntD01 Angular2整合AntD、Angular2整合Material、利用Angular2,AntD,Material联合打造后台管理系统 ???
待更新... 2018-5-21 13:53:52 1 环境说明 2 搭建Angular项目 详情参见 -> 点击前往 辅助技能 -> 点击前往 3 创建共享模块 ng g m share ...
- 575. Distribute Candies 平均分糖果,但要求种类最多
[抄题]: Given an integer array with even length, where different numbers in this array represent diffe ...
- 使用 append 方法追加元素
来自于<sencha touch 权威指南> 学习使用 Ext.DomHelper 组件在页面中追加元素.app.js代码如下: Ext.require(['Ext.form.Panel' ...
- intval()函数
获取变量的整数值 1.转换前转化后 原因: