[quote=引用 18 楼 spu20134823091 的回复:] [quote=引用 16 楼 wanghui0380 的回复:] 为啥你一定要什么 在方法内部使用什么“类名+控件name”来方法,你知道类名是什么不,你知道控件name是什么不 很明显如果是多个地方调用,你根本就不知道,你既然不知道,还怎么写??难道要写N个if else 所以你无需管什么类名,什么name,你只需要管picturebox,他给你传什么picturebox就是什么picturebox。(当然如果你愿意也可以让外面通用继承一个专用接口,不过这就折腾了)
[quote=引用 16 楼 wanghui0380 的回复:] 为啥你一定要什么 在方法内部使用什么“类名+控件name”来方法,你知道类名是什么不,你知道控件name是什么不 很明显如果是多个地方调用,你根本就不知道,你既然不知道,还怎么写??难道要写N个if else 所以你无需管什么类名,什么name,你只需要管picturebox,他给你传什么picturebox就是什么picturebox。(当然如果你愿意也可以让外面通用继承一个专用接口,不过这就折腾了)
Form只要被关掉了,就调用Dispose方法释放了,所以你想要在非当前form执行获取控件,那么可以将这个控件public出来,然后你的问题就转成了怎么获取form,这个肯定能够通过某种方法来获取的,如果彼此有关系,那直接就可以通过关系获取,如果彼此没关系,那估计需要通过最外层的mainform来间接进行获取
为啥你一定要什么 在方法内部使用什么“类名+控件name”来方法,你知道类名是什么不,你知道控件name是什么不 很明显如果是多个地方调用,你根本就不知道,你既然不知道,还怎么写??难道要写N个if else 所以你无需管什么类名,什么name,你只需要管picturebox,他给你传什么picturebox就是什么picturebox。(当然如果你愿意也可以让外面通用继承一个专用接口,不过这就折腾了)
感觉我们的描述就不在一条线上 在winform里面,UI主线程之外的线程要更新控件,必须通过Invoke的方式 还有通过内存获取已存在的控件,上面让你将控件作为参数传递,就是传递的引用类型,相当于C++的指针
方法1.直接把pic当方法参数专递过来 方法2:对pic类编写扩展方法 ------------------- ps:其实总体上看这种封装是多余的,加载图片并赋值pic并不是什么多么难的事情,而且你这代码封装的跟没封也没啥区别。嘿嘿你这代码在实际运行中会有各种各样的“偶发性”异常,什么gdi+一般性错误,什么内存溢出,什么权限不足,等等。
作为静态方法来说,你传递进来是什么控件,它就对什么控件进行修改,何来多个实例会混乱? static void ControlChange(Control control,string txt) { if(control is TextBox) ((TextBox)control).Value=txt; } 这样怎么可能混淆?
static void ControlChange(Control control,string txt) { if(control is TextBox) ((TextBox)control).Value=txt; }
[quote=引用 5 楼 spu20134823091 的回复:] [quote=引用 2 楼 duanzi_peng 的回复:] 不过你可以把调用类改成 单例模式 也就是类初始化一次,类似: 调用:Singleton.Instance.Setxxx();
Singleton.Instance.Setxxx();
[quote=引用 2 楼 duanzi_peng 的回复:] 不过你可以把调用类改成 单例模式 也就是类初始化一次,类似: 调用:Singleton.Instance.Setxxx();
110,500
社区成员
642,577
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧