急!如何遍历一个窗体内的全部控件或对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急!如何遍历一个窗体内的全部控件或对象?相关的知识,希望对你有一定的参考价值。

如果你的控件没有被放在某个容器里,比如groupbox一类的东西里面的话,使用:
foreach(Control c in this.Controls)

____if( c is TextBox )
_________richtextbox.Text += c.Text;


应该可以获得想要的效果,如果使用了容器,那记得对每个容器都调用上面的代码,把this换成容器的对象就可以了。
参考技术A 若何遍历一个窗体内的全部控件或对象?delphi有没有类似vb中的for each ... in 的语句?delphi有没有类似vb中的iif()函数或c这门语言中的? :三目运算符?

在c#中怎么能在一个窗口中设置另一个窗口控件的属性?急急急!!!

现在的问题是,我有两个窗体,一个main窗体,一个login窗体:login窗体中设置main窗体中的菜单控件menustrip的enable 属性为false
我该怎么做???急急急...
最好有示范代码。。。本人菜鸟。。。。谢谢啊..

1、设置menustrip的Modifiers属性为非private,一般不建议这样做;
2、用构造函数,例如在login窗体中:
Menustrip menu1=new Menustrip();
public loginfrm(Menustrip menu2)

InitializeComponent();
menu1=menu2;

3、用委托
main窗体中:
public bool menuEnable

getreturn menustrip.enable;
set(menustrip.enable=value;)

login窗体中:
mainfrm.menuEnable=false;追问

你这123写的是步骤还是有三种方法啊?我没看懂唉...能再详细一点吗?

参考技术A 穿窗体的静态变量。。。。。类似于单例模式。。。。 public static Main _cmain=null;//窗体初始化的时候 进行new下。。。然后 其他窗体通过引用可以达到效果。。LZ可以试试看。。或者自己google相关信息 做个提示!! 参考技术B 这个问题我也遇到过,如果用Fr2控制Form1中的窗体控件,可以在Fr2的事件中编写Form1 frm1 = (Form1 )this.Owner; 语句,这样就可以用frm1对象控制Form1中的控件了.追问

用了你的想法,可是不行啊,它报 System.NullReferenceException异常啊

追答

这个异常貌似是你缺少对所修改窗体的引用啊!你添加using form1试试,这里的form1依照你程序而定。

参考技术C private MainForm m_data = null;
private void readdata_Load(object sender, EventArgs e)

m_data = new MainForm();
m_data.browseControl.Enabled = false;
参考技术D 传引用,学过么追问

能不能详细点呢?我菜鸟一个啊

追答

传参数会不?

追问

传参数会啊...能不能把详细步骤写一下啊...这个我有点晕

追答

你在本窗体会操作吧?this.控件.属性=值,你把这个this传到另一个窗体不就行了么,我手机上的没办法发代码

追问

用过了,但是他报空引用异常啊,为什么啊

追答

发你QQ,我给你发个项目

追问

980463316,谢谢啊..

以上是关于急!如何遍历一个窗体内的全部控件或对象?的主要内容,如果未能解决你的问题,请参考以下文章

delphi7 如何描述窗体上的全部控件

在MFC子窗体内的下拉菜单添加内容?急!!!!!!

急,很急,非常急!!在vs窗体中用DataGridView控件时如何绑定数据库!!!

winform中如何判断窗体上的控件是按钮

在C#winform中如何遍历子窗体中有容器中的所有的控件

在C#winform中如何遍历子窗体中所有的控件