前言

记一些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. Mysql8.0.17安装(windows10)

    1.因为系统重装  又双叒叕开始了装mysql数据库 下载安装包 https://dev.mysql.com/downloads/mysql/ 2.解压到你想安装的地方 3.解压完是没有图红色框中的文 ...

  2. 交易开拓者旗舰版(TB旗舰版)软件升级中如何迁移用户数据

    方法一: 1.导出工作区,桌面和系统设置.操作:文件->导入和导出 2.导出公式.操作:tb公式->公式导入导出. 3.拷贝工作室文件.目录在:user\tb用户名\Workroom 4. ...

  3. 日志管理与ftp。samba,nfs

    1.描述rsyslog日志服务,并提供带web展示的日志服务器 rsyslog日志服务简介 ​ 日志的概念好理解,日志作用可用于排障和追溯审计的等 ​ 1.rsyslog是一个C/S架构的服务,可监听 ...

  4. 使用IDEA将springboot框架导入的两种方法

    第一种新建Maven,导入springboot所依赖的jar包   1.新建一个maven项目,下一步命名,保存文件地址,点击完成         2.进去springboot下载(点击进入),复制p ...

  5. python协程详解,gevent asyncio

    python协程详解,gevent asyncio 新建模板小书匠 #协程的概念 #模块操作协程 # gevent 扩展模块 # asyncio 内置模块 # 基础的语法 1.生成器实现切换 [1] ...

  6. SQL server分页的四种方法

    SQL server分页的四种方法 1.三重循环: 2.利用max(主键); 3.利用row_number关键字: 4.offset/fetch next关键字 方法一:三重循环思路  先取前20页, ...

  7. MySQL数据库开发规范-EC

    最近一段时间一边在线上抓取SQL来优化,一边在整理这个开发规范,尽量减少新的问题SQL进入生产库.今天也是对公司的开发做了一次培训,PPT就不放上来了,里面有十来个生产SQL的案例.因为规范大部分还是 ...

  8. selenium 全天课整理(二)

    # encoding=utf-8 ''' selenium 全天 二 ''' #unittest例子 from selenium import webdriver import unittest,ti ...

  9. RBF神经网络——直接看公式,本质上就是非线性变换后的线性变化(RBF神经网络的思想是将低维空间非线性不可分问题转换成高维空间线性可分问题)

    Deeplearning Algorithms tutorial 谷歌的人工智能位于全球前列,在图像识别.语音识别.无人驾驶等技术上都已经落地.而百度实质意义上扛起了国内的人工智能的大旗,覆盖无人驾驶 ...

  10. c++ default关键字

    PicServer() = default;   ~PicServer() = default; CString 似乎也可以写出来, https://blog.csdn.net/a1875566250 ...