C# WinForm中的一些小问题
前言
记一些C#窗体应用编程中的小问题。
- DataGridView 设置Selected = true后实际选中行标依旧是第一行。
通常通过this.dataGridView1.Rows[i].Selected = true;后,在实际显示的时候,确实第i被选中,然而通过CurrentRow取值都是第一行,而且查看选中行标确实0
- 解决
this.dataGridView1.Rows[i].Selected = true;
this.dataGridView1.CurrentCell = this.dataGridView1.Rows[i].Cells[0]; // 关键
- 清除DataGridView默认选中
通常在给DataGridView设置了DataSource后,会默认选中第一行。
- 解决
在DataBindingComplete事件this.dataGridView1.ClearSelection();,也可以在其他地方调用清空选择行。
- TextBox只接受数字输入
比如只接受一个整数输入,实现KeyPress事件,其中实现
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar != 8 && !Char.IsDigit(e.KeyChar)
}
关于带有小数点的数字校验可查看winForm控制输入框只接受数字输入
4. ** DataGridView按照某一列排序后,一些现实效果丢失**
如果在DataGridView初始化时,设置了一些现实效果,比如说根据数据的不同设置不同的底色,但是在排序后底色就消失了。
- 解决
实现Sorted事件,在该事件中重新设置显示效果。
- 关于DataGridView 的this.dataGridView.DataSource as DataTable 问题
DataTable dt = this.dataGridView.DataSource as DataTable, 这句话可以将DataGridView的的数据转到dt中,其实dt所持有的引用就是DataGridView的数据源,也即dt如果发生了改变,DataGridView也会发生改变。
- 结果
如果不希望dt的改变影响到datagridview,使用DataTable dt = (this.dataGridView.DataSource as DataTable).copy()
- DataTable排序问题
DataTable可以在代码中设定按照一列或者多列排序
dt.DefaultView.Sort = "BH DESC";
按照编号降序排序(控制默认最小), 注意此时的dt并没有按照意愿排序,因为还差一步
dt = dt.DefaultView.ToTable();
需要重新ToTable();
7. DataTable 查询问题
DataTable就“像”一张数据库表一样,可以进行查询操作
DataRow[] drs = dt.Select(" BH is not null"); // 查询BH不为空的记录
返回的是DataRow 数组
最后
未完,待续。。。
C# WinForm中的一些小问题的更多相关文章
- (原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题
一.前言 使用WinForm很久了,多多少少遇到一些小BUG. 这些小BUG影响并不严重,而且只要稍微设置一下就能正常使用,所以微软也一直没有修复这些小BUG. 本来并不足以写篇文章去记录,但是昨天遇 ...
- (原创)WinForm中莫名其妙的小BUG——RichTextBox自动选择字词问题
一.前言 使用WinForm很久了,多多少少会遇到一些小BUG. 这些小BUG影响并不严重,而且稍微设置一下就能正常使用,而且微软一直也没有修复这些小BUG. 写本系列文章,是为了记录一下这些无伤大雅 ...
- winform中的小技巧【自用】
一.C#在WinForm中怎样让多行TEXTBOX的换行 今天做项目,有一段提示文字需要弹出来,由于太长,我就想能不能让它换行.然后就百度了一下,嘿嘿,方法很好用哦. 原文链接:https://blo ...
- WinForm操作隐藏的小知识点
这次的项目需要使用Winform来实现,我们使用的是CSkin的皮肤.文章主要记录使用过程中遇到的小问题,也是楼主网上查找很久才找到的,这里总结下. 插件地址: 使用SKinDataGridView出 ...
- C# 中几个小“陷阱”
每天写代码,偶尔就会有让你抓狂的时候:代码改了千百遍,蓦然回首,Bug就在灯火阑珊处……这里就列举一些容易犯错的几个小地方,以后遇到了其他的,再慢慢添加. 1. 获取程序当前运行路径 情景复现 ...
- 在Winform中播放视频等【DotNet,C#】
在项目中遇到过这样的问题,就是如何在Winform中播放视频.当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单:第二种是利用DirectX直接在窗体或者控件 ...
- C#winform中ListView的使用
使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1.MainForm.cs及MainForm.Designer.cs ...
- 20150216—winform中的DataGridView
DataGridView的主要作用是用来按列表来显示信息,其信息的数据源可以是SQL数据库,也可以是一个列表式的集合. DataGridView的位置:工具箱--数据--DataGridView.如下 ...
- C#、Java中的一些小功能点总结(持续更新......)
前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...
随机推荐
- Tomcat - 控制台乱码
1.找到${CATALINA_HOME}/conf/logging.properties 2.找到java.util.logging.ConsoleHandler.encoding = UTF-8 修 ...
- 笔谈OpenGL ES(三)
昨天下午以及今天一天,公司安排了新员工培训课程,占用了自己的一些时间,但是也了解到一些新的有利于自身的东西.进公司就要进有完善公司体系和制度的公司,小公司真的是没搞头的,我体验过,反正小公司以后是不会 ...
- ubuntu安裝postman遇到問題
@ubuntupc:~/Postman/app$ sudo ./Postman ./Postman: error while loading shared libraries: libgconf-2. ...
- redhat6.7环境下oracle11gR2 RAC静默安装
(一)基础环境 虚拟机环境 :vmware workstation 12 操作系统 : redhat6.7 - 64bit 数据库版本 :11.2.0.4 (二)安装前的环境准备 (2.1)配置 ...
- Android笔记(四十三) Android中的数据存储——SQLite(五)delete
SQLite通过delete()方法删除数据 delete()方法参数说明: delete()方法参数 对应sql部分 描述 table delte from table_name 要删除的表 whe ...
- JSON空值处理与 StringUtils工具类使用
JSON 动态查询时,需要的条件本应是null,前端传入的是" " //null转换为"" private static ValueFilter filter ...
- java基础(12)---异常
一.throws和throw 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 区别: 1.概念 throws E1,E2,E3只是告诉程序这个 ...
- java中List集合
List集合是一个元素有序可以重复的集合,集合中每个元素都有其对应的顺序索引.List集合允许使用重复集合,前面博客写到Set不允许有重复集合.List集合可以通过索引来访问指定位置的集合元素. Li ...
- CentOS7 部署 ElasticSearch7.0.1 集群
环境 主机名 IP 操作系统 ES 版本 test1 192.168.1.2 CentOS7.5 7.0.1 test2 192.168.1.3 CentOS7.5 7.0.1 test3 192.1 ...
- 华硕ASUS U5800GE驱动
重要的触摸板 微软商店 ASUS Keyboard Hotkeys 设备管理器 人体学输入设备 ASUS Precision Touchpad (ScreenPad) Asus ScreenPad D ...