Winform datagridview相关操作
datagridview显示行号的2种方法:
方法一: 网上最常见的做法是用DataGridView的RowPostPaint事件在RowHeaderCell中绘制行号: privatevoiddataGridView1_RowPostPaint(objectsender, DataGridViewRowPostPaintEventArgs e){try{e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, new SolidBrush(Color.CadetBlue), e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 5);}catch(Exception ex){MessageBox.Show("添加行号时发生错误,错误信息:"+ex.Message, "操作失败");}} 但是这种方法在大数据量的时候性能比较差,每次滚动数据都会触发RowPostPaint事件。 方法二: 我的做法是给每行的HeaderCell赋值。 在网上发现有人提到这种做法,但是因为最后的显示问题而选择了上面的方法。具体问题就是,在行号超过2位,如100、1000,在选中该行时,DataGridView的行指示符▶会把行号往右挤,导致现实不全,100的时候显示▶10。 其实还是RowsHeaderWidth的大小有问题,将该列的宽度放大,行号显示的也没问题! 不知道他们有没有试过,上面绘制行号的方法在大行号的情况下显示也会有问题。 既然知道问题所在就要找到相应的解决方法。 具体做法是将DataGridView的RowsHeaderWidthSizeMode属性设置为AutoSizeToAllHeaders或者AutoSizeToDisplayedHeaders,这样自动设置宽度就不会出现行指示符挤压行号的情况了。 对于每次DataGridView的行变化,我们都去更新行号,用RowsAdded和RowsRemoved事件。 代码如下: RowsAdded & RowsRemoved privatevoidDataGridView1_RowsAdded(objectsender, DataGridViewRowsAddedEventArgs e) { for(inti =0; i <e.RowCount; i++) { this.DataGridView1.Rows[e.RowIndex +i].HeaderCell.Style.Alignment =DataGridViewContentAlignment.MiddleRight; this.DataGridView1.Rows[e.RowIndex +i].HeaderCell.Value =(e.RowIndex +i +1).ToString(); } for(inti =e.RowIndex +e.RowCount; i <this.DataGridView1.Rows.Count; i++) { this.DataGridView1.Rows[i].HeaderCell.Style.Alignment =DataGridViewContentAlignment.MiddleRight; this.DataGridView1.Rows[i].HeaderCell.Value =(i +1).ToString(); } }privatevoidDataGridView1_RowsRemoved(objectsender, DataGridViewRowsRemovedEventArgs e) { for(inti =0; i <e.RowCount; i++) { this.DataGridView1.Rows[e.RowIndex +i].HeaderCell.Style.Alignment =DataGridViewContentAlignment.MiddleRight; this.DataGridView1.Rows[e.RowIndex +i].HeaderCell.Value =(e.RowIndex +i +1).ToString(); } for(inti =e.RowIndex +e.RowCount; i <this.DataGridView1.Rows.Count; i++) { this.DataGridView1.Rows[i].HeaderCell.Style.Alignment =DataGridViewContentAlignment.MiddleRight; this.DataGridView1.Rows[i].HeaderCell.Value =(i +1).ToString(); } }
datagridview 指定列,进行绑定,不绑定的列不显示:
1:Winform项目 中:private void Form_Load(object sender, EventArgs e){//禁止自动生成列this.datagridview1.AutoGenerateColumns = false;} 2:Web项目中: 设置datagridview 的AutoGenerateColumns 属性为False
C#dataGridView显示menuStrip
拖一个ContextMenuStrip,设置dataGridView的ContextMenuStrip属性绑定快捷菜单即可。 设置DataGridView只能选中一行:this.dataGridView.MultiSelect = false;
转载于:https://www.cnblogs.com/iack/p/3559726.html
Winform datagridview相关操作相关推荐
- c# datagridview 相关操作。
string[] newRow = {"long","d","b"}; Gridview.Rows.Insert(Gridview.Rows ...
- C# winform DataGridView 常见属性
C# winform DataGridView 常见属性 C# winform DataGridView 属性说明 ① 取得或者修改当前单元格的内容 ② 设定单元格只读 ③ 不显示最下面的新行 ④ 判 ...
- Datagridview 相关
一,ComboBoxColumn列的相关操作(动态绑定数据,SelelectedChanged事件) 界面效果图 给combox绑定数据(可以放在Page_Load中) VB: 'repWiClien ...
- 基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作
基于C#的AE二次开发之图层右键菜单打开属性表及图层相关操作 我的开发环境为ArcGIS Engine 10.2与Visual studio2010.主地图名称为axMapControl1,Toc目录 ...
- C# WinForm dataGridView 技巧小结
C# WinForm dataGridView 技巧小结 1.不显示第一个空白列 RowHeaderVisible属性设置为false 2.点击cell选取整行 SelectinModel 属性Ful ...
- C# DataTable相关操作
DataTable相关操作 用法一:动态创建一个DataTable ,并为其添加数据 public void CreateTable(){//创建表DataTable dt = new DataTab ...
- 2021年大数据HBase(五):HBase的相关操作JavaAPI方式
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-JavaAPI方式 一.需求说明 ...
- 2021年大数据HBase(四):HBase的相关操作-客户端命令式!【建议收藏】
全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的相关操作-客户端命令式 1.进入HBase ...
- 2021年大数据Spark(二十五):SparkSQL的RDD、DF、DS相关操作
目录 RDD.DF.DS相关操作 SparkSQL初体验 SparkSession 应用入口 获取DataFrame/DataSet 使用样例类 指定类型+列名 自定义Schema ...
最新文章
- SLAM全栈+三维重建全栈系统学习路线!
- 计算图像相似度——《Python也可以》之一(转)
- WebService SOAP、Restful和HTTP(post/get)请求区别
- 封装cookie设置和获取的简易方法
- 如何创建自己的composer包
- 使用zk可以实现Master选举,实现原理是什么?
- Xcode7.1模拟器卡顿问题以及解决方案
- C++ 练习题(二)计算机存储和数字系统介绍
- AngularJS transclude 理解及例子
- UE4 android开发
- selenium安装
- word文件做一半未响应_Word 2016 开个别文档总是未响应
- php 图片 变灰色,php实现给图片加灰色半透明效果的方法_PHP
- 计算机专业知识更新速度快,最近及计算机专业知识.doc
- 机械硬盘结构与固态硬盘
- 无人机飞控技术-市场现状及未来发展趋势
- 无惧黑暗强光,纯视觉导航也能全天候作业
- html下拉框设置默认值_html下拉框怎么设置默认值
- matlab滞环比较控制器,滞环比较跟踪控制技术
- STATIC和静态分析的必要性