前言
各位小伙伴,大家周末愉快。
最近这段时间比较忙,所以文章更新节奏有点慢,请见谅!
今天跟大家分享的主题是基于自定义特性实现DataGridView全自动生成。
实现过程
这里是在上一篇文章《给你的属性加个说明》的基础上,对其做进一步应用。
给你的属性加个说明
首先创建一个窗体应用,在窗体里拖放一个DataGridView控件和一个生成数据的按钮,将DataGridView控件的启用添加、启用编辑、启用删除的勾选都去掉。
后台编写一个初始化DataGridView的方法,代码如下。
private void InitialDataGridView()
{
Type t = typeof(Points);
foreach (PropertyInfo pi in t.GetProperties())
{
//获取属性名称
string propertyName = pi.Name;
//获取显示文本
string displayName = pi.GetCustomAttribute
然后在构造方法里初始化调用一下:
public FrmMain()
{
InitializeComponent();
this.dgvMain.AutoGenerateColumns = false;
InitialDataGridView();
}
接着在生成数据按钮添加一些数据,代码如下:
private void btn_Generate_Click(object sender, EventArgs e)
{
List
点击生成数据按钮,效果如下:
这样就实现了动态生成DataGridView控件,后续如果需要更改名称或者增加列,直接去实体类修改即可,不需要再去修改DataGridView了。
这种方式非常适用于列数非常多且不确定因素非常多的情况,比如配方应用等。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
自定义
+关注
关注
0文章
12浏览量
8587 -
自动生成
+关注
关注
0文章
9浏览量
7334
发布评论请先 登录
相关推荐
SOPC中自定义外设和自定义指令性能分析
SOPC中自定义外设和自定义指令性能分析
NiosII是一个建立在FPGA上的嵌入式软核处理器,灵活性很强。作为体现NiosII灵活性精髓的两个最主要方面,自
发表于 03-29 15:12
•1499次阅读
Rust 1.15 引入自定义derive特性有什么做用
Rust核心团队发布了Rust 1.15稳定版,新增了备受期待的自定义derive特性,让代码生成工具(如Serde和Diesel)能最大效能地工作。
发表于 05-17 18:05
•0次下载
鸿蒙上自定义组件的过程
特性的组件,通过扩展 Component 或其子类实现,可以精确控制屏幕元素的外观,实现开发者想要达到的效果,也可响应用户的点击、触摸、长按等操作。 下面通过自定义一个仿微信朋友圈主页的组件来了解一下自定义组件的过程。
自定义视图组件教程案例
自定义组件 1.自定义组件-particles(粒子效果) 2.自定义组件- pulse(脉冲button效果) 3.自定义组件-progress(progress效果) 4.
发表于 04-08 10:48
•14次下载
自定义算子开发
一个完整的自定义算子应用过程包括注册算子、算子实现、含自定义算子模型转换和运行含自定义op模型四个阶段。在大多数情况下,您的模型应该可以通过使用hb_mapper工具完成转换并顺利部署到地平线芯片上……
评论