首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

c# 窗体下有的子窗体,里边有很多动态控件,为什么遍历的时候只能找出一个来

2013-09-05 
c# 窗体下有的子窗体,里面有很多动态控件,为什么遍历的时候只能找出一个来?1、步骤1,有个功能是新建窗体,富

c# 窗体下有的子窗体,里面有很多动态控件,为什么遍历的时候只能找出一个来?
1、步骤1,有个功能是新建窗体,富文本停靠在窗体上,代码如下
    Form fm = new Form();
            fm.Location = new Point(0, 0);
            fm.TopMost = true;
            fm.MdiParent = this;
            fm.AutoScroll = true;
            fm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            RichTextBox rt = new RichTextBox();
            rt.Dock = System.Windows.Forms.DockStyle.Fill;
            rt.Location = new Point(0, 0);
            rt.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None;
            rt.ReadOnly = true;
            rt.BackColor = System.Drawing.Color.White;
            fm.Controls.Add(rt);
            fm.Show();
2、在新建的窗体,里面动态添加文本框,代码如下:
 int name = new DateTime().Millisecond;
            TextBox txtBox = new TextBox();
            txtBox.Name = "txt" + name;
            txtBox.Multiline = true;
            txtBox.Size = new System.Drawing.Size(100, 25);
            txtBox.BorderStyle = BorderStyle.FixedSingle;
            txtBox.Location = new Point(25 + count, 20 + count);
            Form activeForm=this.ActiveMdiChild;//获取被激活的窗体
            foreach(Control crl in activeForm.Controls)
            {
                if(crl is RichTextBox)


                {
                    crl.Controls.Add(txtBox);
                }
            }
            count += 10;

3、遍历这个窗体里面的控件代码如下,请问为什么只能找出一个来(这里我动态添加了10个文本框)
Form activeForm = this.ActiveMdiChild;
 foreach (Control crl in activeForm.Controls)
{

}
//activeForm.Controls.count只有一个的?
[解决办法]
你看看 activeForm.Controls[0].Controls 里面是什么?
[解决办法]

引用:
Quote: 引用:

你窗体上是否有容器控件,而其它控件包含在容器控件中?

窗体里有个富文本,富文本有很多文本框
那窗体中控件当然就只有一个了,就是那个富文本框控件,而你其他文本框是属于富文本框的,不直接属于窗体;可以试试activeForm.Controls改成activeForm.Controls[富文本框名称]或直接activeForm.Controls[0](窗体直属的控件只有富文本框的情况)进行遍历

热点排行