C#【必备技能篇】DatagridView添加行时,设置行标题单元格的值为行数
c# 设置 添加 必备 技能 标题 单元格 行数
2023-09-11 14:15:48 时间
文章目录
1、DatagridView添加行的代码
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 10; i++)
{
dataGridView1.Rows.Add();
}
}
2、方法一:【每次添加行都重新刷新了全部的行数,不推荐】
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
dataGridView1.Rows[i].HeaderCell.Value = (i + 1).ToString();
}
}
3、方法二:【只有一个DatagridView时,推荐此方法】
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
dataGridView1.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
}
4、方法三:【通用方法,多个DatagridView都有这个需求时,推荐此方法】
private void dataGridView_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
DataGridView dgv = new DataGridView();
dgv = (DataGridView)sender;
dgv.Rows[e.RowIndex].HeaderCell.Value = (e.RowIndex + 1).ToString();
}
根据下图,有上边的代码:
1)将多个dataGridView的RowsAdded事件绑定dataGridView_RowsAdded方法
2)显示效果:
5、补充:【如果行标题数字不能显示全,可以更改下边属性】
6、进一步补充:用绘制的方法来添加行号【了解即可】
1)datagridview绑定事件
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
2)对应的方法源码
/// <summary>
/// 给DGV添加行号:当dgv绑定的数据源不断变化时,使用此事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
DgvRowPostPaint(dataGridView1, e);
}
/// <summary>
/// 给DGV添加行号
/// </summary>
/// <param name="dgv"></param>
/// <param name="e"></param>
public static void DgvRowPostPaint(DataGridView dgv, DataGridViewRowPostPaintEventArgs e)
{
try
{
//添加行号
SolidBrush v_SolidBrush = new SolidBrush(dgv.RowHeadersDefaultCellStyle.ForeColor);
int v_LineNo = 0;
v_LineNo = e.RowIndex + 1;
string v_Line = v_LineNo.ToString();
e.Graphics.DrawString(v_Line, e.InheritedRowStyle.Font, v_SolidBrush, e.RowBounds.Location.X + 15, e.RowBounds.Location.Y + 3);
}
catch (Exception ex)
{
MessageBox.Show("添加行号时发生错误,错误信息:" + ex.Message, "操作失败");
}
}
相关文章
- Unity3D热更新全书-脚本(四) 用C#LightEvil搭建实际开发使用的脚本框架
- C#属性默认值设置
- C# 调用Qt编写的控件
- C# XCOPY命令 预先生成事件命令行”和“后期生成事件命令行”
- c#代码 天气接口 一分钟搞懂你的博客为什么没人看 看完python这段爬虫代码,java流泪了c#沉默了 图片二进制转换与存入数据库相关 C#7.0--引用返回值和引用局部变量 JS直接调用C#后台方法(ajax调用) Linq To Json SqlServer 递归查询
- C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
- 史上最全的CSS hack方式一览 jQuery 图片轮播的代码分离 JQuery中的动画 C#中Trim()、TrimStart()、TrimEnd()的用法 marquee 标签的使用详情 js鼠标事件 js添加遮罩层 页面上通过地址栏传值时出现乱码的两种解决方法 ref和out的区别在c#中 总结
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- c#运用反射获取属性和设置属性值
- Word控件Spire.Doc 【Table】教程(4):如何在C#、VB.NET中设置Word表格样式
- Word控件Spire.Doc 【段落处理】教程(四):如何在 C#、VB.NET 中设置 Word 项目符号样式
- Word控件Spire.Doc 【文档操作】教程(五):在 C#、VB.NET 中合并、设置多个 Word 文档
- Word控件Spire.Doc 【文档操作】教程(四):在 C#、VB.NET 中设置 Word 视图模式
- C#学习记录——为程序设置版本和帮助信息
- C#【必备技能篇】调试非托管代码(如何在Visual Studio设置)
- C#,笛卡尔树(Cartesian Tree)的构造、遍历算法与源代码
- C#wxpay和alipay
- C# 设置 窗口最大化
- C#的两种类据类型:值类型和引用类型
- 解决关闭窗口,C#报错"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"
- C# BackgroundWorker使用总结
- 《C#零基础入门之百识百例》(六十二)结构体类型变量 -- 学生数据记录
- C# 实现设置系统环境变量设置
- C# 实现设置系统环境变量设置
- C#-发布程序添加其他程序文件
- C#中【pdb】文件
- 【实战学习c#】为程序设置版本和帮助信息
- 【C#/WPF】Button按钮动态设置Background背景颜色