winform动态生成窗体并实现传值返回

本文探讨了在WinForm应用中如何动态生成窗体以避免重复代码,并解决在不同功能窗口间传递值的挑战。作者分享了一种通过中间窗口和委托方法实现值传递的解决方案,同时遇到了设计器错误的困扰,最终找到一种有效的方法,即直接将父窗口对象作为参数传递给子窗口,实现了标题修改的成功测试。
摘要由CSDN通过智能技术生成

目前还在苦逼的折腾练手作,碰到了关于生成窗体和传值的需求
首先是生成窗体的需求:
首先,首页有众多按钮,都是用来指向各个功能窗口的,一个个是编写代码的话,太麻烦了;
其次,设计一个通用的筛选窗口,给不同的数据表界面进行查询筛选,在编写查询条件时,要给一些项目比较多的字段提供一个浏览查询功能,同样需要动态生成窗体……
这个需求倒是挺容易就找到了解决方案,直接贴出代码以供参考


		string strForm = (sender as Button).Tag.ToString();//我在设计界面里,已经将每个按钮的tag填好了需要创建的窗口类名
        object[] obj = new object[1] { sqlcon };//我传了个mysql连接字符串,显然,在调用的窗口类里,需要写一个相应的构造函数,这个就不必展示了吧
        Form form = GetInstance(strForm, obj) as Form;//调用下面的那个方法
        form.show();			
        //以上是我写在二十多个按钮共同的click事件方法里的创建窗口代码
        
        ///这个方法,或者说这里面的这句代码,是关键所在             
		public static object GetInstance(string instanceName, params object[] param)
        {
            return Assembly.Load(Assembly.GetAssembly(typeof(Index)).GetName().Name).CreateInstance(typeof(Index).Namespace + "." + ins
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值