解决VS在设计时无法生成窗体设计器的Controls.Add()代码
解决VS在设计时无法生成窗体设计器的Controls.Add()代码
C# Code:
c.OnComponentChanging(form, null);//通知窗体正在新增控件服务 form.Controls.Add(button);//Form.Controls.Add, 生成持久化代码 c.OnComponentChanged(form, null, null, null);//通知窗体修改服务已完成
C# Code:
private void OnGenerateButtonCode(object sender, EventArgs e) { // //在窗体上加入一个Button组件,host.RootComponent=Form // //取出窗体设计器 IDesignerHost host = (IDesignerHost)this.GetService(typeof(IDesignerHost)); IComponentChangeService c = (IComponentChangeService)this.GetService(typeof(IComponentChangeService)); Form form = (Form)host.RootComponent;//RootComponent: 根组件,指Form DesignerTransaction tran = host.CreateTransaction();//创建事务 //创建按钮组件 Button button = (Button)host.CreateComponent(typeof(Button)); button.Text = "www.CSFramework.com"; button.Location = new Point(50, 50); button.Size = new Size(150, 30); c.OnComponentChanging(form, null);//通知窗体正在新增控件服务 form.Controls.Add(button);//Form.Controls.Add, 生成持久化代码 c.OnComponentChanged(form, null, null, null);//通知窗体修改服务已完成 tran.Commit();//提交事务 MessageBox.Show("已生成" button.Name "的代码!请打开frmTester.Designer.cs文件查看."); } //来源:C/S框架网(www.csframework.com) QQ:1980854898
扫一扫加作者微信
参考文档:
C#.Net组件开发(高级篇) - 设计时在窗体设计器文件内生成组件的代码 C#.Net组件开发(高级篇) - 使用自定义TypeConverter生成设计时代码 打开VS的窗体设计器,经常出现:若要在加载设计器前避免可能生成的数据丢失,必须纠正以下错误: 代码生成器新添两大功能,生成业务模块及模块主窗体 代码生成器生成的数据字典窗体可支持流水号 生成的窗体代码因为少写了.Properties属性出现的设计器错误 VS编译生成解决方案失败,但是检查源码完全正常的奇异现象 企业版V4.5代码生成器自动生成窗体原型及二次加工界面参考 VS2015开启HTML设计器 Web窗体编辑器 解决代码生成器生成主从表界面没有带出中文标题的问题 VS2015 打开HTML设计编辑视图(Web窗体编辑器) 原创解决方案:VS无法连接到已配置的开发Web服务器 VS运行调试:当前无法命中断点,还没有为该文档加载任何符号|解决方案 生成的窗体Form源码集成到VS解决方案 - C/S框架三层架构代码生成器操作指南 生成的项目模块(Project)添加到VS解决方案 - C/S框架三层架构代码生成器操作指南
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |