当前位置: 首页 > news >正文

10-C#的dataGridView1和datatable的使用

C#的dataGridView的使用

1.双缓冲-解决控件卡顿

//利用反射设置DataGridView1的双缓冲
Type dgvType = this.dataGridView1.GetType();
PropertyInfo pi = dgvType.GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(this.dataGridView1, true, null);

2.不允许自动添加行

dataGridView1.AllowUserToAddRows = false;     //不允许自动添加行

3.数据的遍历

for (int i = 0; i < dataGridView1.RowCount; i++)
{for (int j = 0; j < dataGridView1.ColumnCount; j++){// 打印第i行第j列数据dataGridView1.Rows[i].Cells[j].Value=i*j;}
}

4.设置第一行的名称

dataGridView1.Rows[0].HeaderCell.Value = "-20";

5.获取第一行第一列的内容

label13.Text= dataGridView1.Rows[0].Cells[0].Value.ToString();

6.设置行宽度和个数

dataGridView1.RowHeadersWidth = 60;//设置行的宽度
dataGridView1.RowCount = 10;//设置行的个数
dataGridView1.Columns[0].Width = 30;//设置列宽度
dataGridView2.Rows[i].Height = 25;设置行高度
//设置列宽度,文字水平垂直对其
dataGridView2.Columns[i].Width = 25;
dataGridView2.Columns[i].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

7.判断输入的数据是否是浮点字符串

        private void dataGridView2_CellValidating(object sender, DataGridViewCellValidatingEventArgs e){//if (e.FormattedValue.ToString().Length > 2)//{//    e.Cancel = true;//}if (double.TryParse(e.FormattedValue.ToString(),out _)){e.Cancel = true;}}

C#的Datatable的使用

DataTable 是一个临时保存数据的网格虚拟表,表示内存中数据的一个表,是一个二维表,也是一个后台数据源和前台显示之间的适配器。

1.实例化datatable

//创建实例,并添加首行的内容
DataTable dt = new DataTable();
dt.Columns.Add("column0", typeof(String));//添加列
//再次添加列for (int i = 1; i < arraystr.GetLength(1); i++){dt.Columns.Add(i.ToString(), typeof(string));}
//为每一行添加数据
for (int i = 0; i < arrFrames.GetLength(0); i++)//获取行数量
{DataRow dr = dt.NewRow();//dr[0] = (i + 1).ToString();for (int j = 0; j < arraystr.GetLength(1); j++)//获取列数量{dr[j] = arraystr[i, j].ToString();}dt.Rows.Add(dr);
}

2.dataGridView1与datatable绑定

dataGridView2.DataSource = dt;

3.datatable某一行对应的列数据修改

dt.Rows[0]["12"] =44.ToString();

4.datatable某一列的名称修改

dt.Columns["12"].ColumnName = 99.ToString();
http://www.lqws.cn/news/510823.html

相关文章:

  • vue 3 计算器
  • 用 Python 打造立体数据世界:3D 堆叠条形图绘制全解析
  • STM32学习笔记——中断控制
  • 利用大型语言模型增强边缘云 AI 系统安全性
  • wordpress无法将上传图片的原因和解决方法
  • windows系统中docker数据迁移出系统盘
  • uniapp/Vue/微信小程序瀑布流,小红书瀑布流,豆瓣瀑布流,淘宝瀑布流布局
  • IoTDB的基本概念及常用命令
  • RabbitMQ是什么?以及优缺点
  • Unity2D 街机风太空射击游戏 学习记录 #13 射击频率道具 最高分
  • 【JavaScript-Day 48】告别 Ajax,拥抱现代网络请求:Fetch API 完全指南
  • C++【生存游戏】开发:荒岛往事 第一期
  • CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)
  • 抖音视频怎么去掉抖音号水印保存
  • Unity_导航操作(鼠标控制人物移动)_运动动画
  • 性能测试-jmeter实战4
  • 【Spring底层分析】AOP的cligb代理和jdk代理
  • go语言 *和
  • 基于StarRocks的指标平台查询加速方案
  • sqlserver怎样动态执行存储过程,并且返回报错
  • 解决ptmalloc2内存过大的三种方案
  • 使用GDB调试程序方法
  • 02-Linux内核源码编译
  • java语言中的XML解析
  • 解决Fedora21下无法使用NWJS网页透明效果的问题
  • mybatisPlus动态表前缀
  • 磁悬浮轴承遇上“热浪”挑战:多参数自适应补偿策略揭秘
  • [学习] C语言编程中线程安全的实现方法(示例)
  • day041-web集群架构搭建
  • 棋盘格标定板和圆形标定板的优劣性