c#的winform怎么根据控件的名字获取控件属性?
这首先要看控件所在的Form类有没有实例化,若已经实例化,可以通过构造传参或委托的方式完成。
构造传参:将控件所在的Form类实例化对象作为参数传到你new的新Form中。
C#实现根据指定容器和控件名字获得控件的方法,在进行C#应用程序设计时有一定的借鉴价值。分享给大家供大家参考借鉴。具体实现方法如下:
功能代码如下:
1、/// <summary>
2、/// 根据指定容器和控件名字,获得控件
3、/// </summary>
4、/// <param name="obj">容器</param>
5、/// <param name="strControlName">控件名字</param>
6、/// <returns>控件</returns>
7、private object GetControlInstance(object obj,string strControlName)
8、{
9、IEnumerator Controls = null;//所有控件
10、Control c = null;//当前控件
11、Object cResult=null;//查找结果
12、if(obj.GetType() == this.GetType())//窗体
13、{
14、Controls = this.Controls.GetEnumerator();
15、}
16、else//控件
17、{
18、Controls = ((Control)obj).Controls.GetEnumerator();
19、}
20、while(Controls.MoveNext())//遍历操作
21、{
22、c = (Control)Controls.Current;//当前控件
23、if(c.HasChildren)//当前控件是个容器
24、{
25、cResult = GetControlInstance(c,strControlName);//递归查找
26、if(cResult==null)//当前容器中没有,跳出,继续查找
27、continue;
28、else//找到控件,返回
29、return cResult;
30}
31、else if(c.Name == strControlName)//不是容器,同时找到控件,返回
32、{
33、return c;
34、}
35、}
36、return null;//控件不存在
37、}
示例如下:
((Button) GetControlInstance(this,"button7")).BackColor = Color.Red;
((Button) GetControlInstance(this.groupBox4,"button7")).PerformClick();
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。