C# WinForm中的一些小问题
2024-10-20 04:10:59
前言
记一些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 数组
最后
未完,待续。。。
最新文章
- 免费SSL证书 之Let’s Encrypt申请与部署(Windows Nginx)
- thinkphp3.2.3分页
- jquery怎么获取radio选中的值
- iOS学习笔记---oc语言第五天
- ios开发——面试篇C语言精华
- html 5的localstorag
- 国都企信通短信平台发送手机短信的python脚本一例
- 【DOORS】如何基于DOORS实施需求管理
- npm:Fatal error in , line 0 #unreachable code 解决
- django中的Q查询
- 关于 Cortex-M3 的双堆栈机制
- Ubuntu Navicat 安装破解+解决乱码+其他问题
- 向量空间模型(VSM)在文档相似度计算上的简单介绍
- Windows Server 2012 NAT端口转发
- Linux6.5 安装Python3.X(转载)
- Tesseract-OCR 训练教程(一)
- js实现链式操作
- java线程dump分析工具
- 逆向随笔 - switch 语句深入分析
- HDU4686—Arc of Dream
热门文章
- MongoDB 4.2.1 安装失败,提示 verify that you have sufficient privileges to start system services 解决
- [LeetCode] 64. 最小路径和 ☆☆☆(动态规划)
- Android笔记(五十二) 侧滑菜单SlidingMenu
- MyBatis-Migrations安装和使用
- 【转】C语言宏定义的几个坑和特殊用法
- 16、Real-time Personalization using Embeddings for Search Ranking at Airbnb
- minhash pyspark 源码分析——hash join table是关键
- Caused by: java.io.IOException: 你的主机中的软件中止了一个已建立的连接。
- Sharding-JDBC(三)3.1.0版本实践
- 【Java】Unicode &; UTF-8 &; UTF-16 &; UTF-32