前言

记一些C#窗体应用编程中的小问题。

  1. 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]; // 关键
  1. 清除DataGridView默认选中

    通常在给DataGridView设置了DataSource后,会默认选中第一行。
  • 解决

    DataBindingComplete事件 this.dataGridView1.ClearSelection();,也可以在其他地方调用清空选择行。
  1. TextBox只接受数字输入

    比如只接受一个整数输入,实现KeyPress事件,其中实现
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = e.KeyChar != 8 && !Char.IsDigit(e.KeyChar)
}

关于带有小数点的数字校验可查看winForm控制输入框只接受数字输入

4. ** DataGridView按照某一列排序后,一些现实效果丢失**

如果在DataGridView初始化时,设置了一些现实效果,比如说根据数据的不同设置不同的底色,但是在排序后底色就消失了。

  • 解决

    实现Sorted事件,在该事件中重新设置显示效果。
  1. 关于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()
  1. 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中的一些小问题的更多相关文章

  1. (原创)WinForm中莫名其妙的小BUG——ComboBox 尺寸高度问题

    一.前言 使用WinForm很久了,多多少少遇到一些小BUG. 这些小BUG影响并不严重,而且只要稍微设置一下就能正常使用,所以微软也一直没有修复这些小BUG. 本来并不足以写篇文章去记录,但是昨天遇 ...

  2. (原创)WinForm中莫名其妙的小BUG——RichTextBox自动选择字词问题

    一.前言 使用WinForm很久了,多多少少会遇到一些小BUG. 这些小BUG影响并不严重,而且稍微设置一下就能正常使用,而且微软一直也没有修复这些小BUG. 写本系列文章,是为了记录一下这些无伤大雅 ...

  3. winform中的小技巧【自用】

    一.C#在WinForm中怎样让多行TEXTBOX的换行 今天做项目,有一段提示文字需要弹出来,由于太长,我就想能不能让它换行.然后就百度了一下,嘿嘿,方法很好用哦. 原文链接:https://blo ...

  4. WinForm操作隐藏的小知识点

    这次的项目需要使用Winform来实现,我们使用的是CSkin的皮肤.文章主要记录使用过程中遇到的小问题,也是楼主网上查找很久才找到的,这里总结下. 插件地址: 使用SKinDataGridView出 ...

  5. C# 中几个小“陷阱”

    每天写代码,偶尔就会有让你抓狂的时候:代码改了千百遍,蓦然回首,Bug就在灯火阑珊处……这里就列举一些容易犯错的几个小地方,以后遇到了其他的,再慢慢添加.   1. 获取程序当前运行路径   情景复现 ...

  6. 在Winform中播放视频等【DotNet,C#】

    在项目中遇到过这样的问题,就是如何在Winform中播放视频.当时考察了几种方式,第一种是直接使用Windows Media Player组件,这种最简单:第二种是利用DirectX直接在窗体或者控件 ...

  7. C#winform中ListView的使用

    使用ListView模仿Windows系统的资源管理器界面,实现文件(夹)的浏览.重命名.删除及查询等功能,主要功能界面展示如下: 1.MainForm.cs及MainForm.Designer.cs ...

  8. 20150216—winform中的DataGridView

    DataGridView的主要作用是用来按列表来显示信息,其信息的数据源可以是SQL数据库,也可以是一个列表式的集合. DataGridView的位置:工具箱--数据--DataGridView.如下 ...

  9. C#、Java中的一些小功能点总结(持续更新......)

    前言:在项目中,有时候一些小的功能点,总是容易让人忽略,但是这些功能加在项目中往往十分的有用,因此笔者在这里总结项目中遇到的一些实用的小功能点,以备用,并持续更新...... 1.禁用DataGrid ...

随机推荐

  1. Tomcat - 控制台乱码

    1.找到${CATALINA_HOME}/conf/logging.properties 2.找到java.util.logging.ConsoleHandler.encoding = UTF-8 修 ...

  2. 笔谈OpenGL ES(三)

    昨天下午以及今天一天,公司安排了新员工培训课程,占用了自己的一些时间,但是也了解到一些新的有利于自身的东西.进公司就要进有完善公司体系和制度的公司,小公司真的是没搞头的,我体验过,反正小公司以后是不会 ...

  3. ubuntu安裝postman遇到問題

    @ubuntupc:~/Postman/app$ sudo ./Postman ./Postman: error while loading shared libraries: libgconf-2. ...

  4. redhat6.7环境下oracle11gR2 RAC静默安装

    (一)基础环境 虚拟机环境 :vmware workstation 12 操作系统    : redhat6.7 - 64bit 数据库版本 :11.2.0.4 (二)安装前的环境准备 (2.1)配置 ...

  5. Android笔记(四十三) Android中的数据存储——SQLite(五)delete

    SQLite通过delete()方法删除数据 delete()方法参数说明: delete()方法参数 对应sql部分 描述 table delte from table_name 要删除的表 whe ...

  6. JSON空值处理与 StringUtils工具类使用

    JSON 动态查询时,需要的条件本应是null,前端传入的是" " //null转换为"" private static ValueFilter filter ...

  7. java基础(12)---异常

    一.throws和throw 用户程序自定义的异常和应用程序特定的异常,必须借助于 throws 和 throw 语句来定义抛出异常. 区别: 1.概念 throws E1,E2,E3只是告诉程序这个 ...

  8. java中List集合

    List集合是一个元素有序可以重复的集合,集合中每个元素都有其对应的顺序索引.List集合允许使用重复集合,前面博客写到Set不允许有重复集合.List集合可以通过索引来访问指定位置的集合元素. Li ...

  9. 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 ...

  10. 华硕ASUS U5800GE驱动

    重要的触摸板 微软商店 ASUS Keyboard Hotkeys 设备管理器 人体学输入设备 ASUS Precision Touchpad (ScreenPad) Asus ScreenPad D ...