c#窗体动态生成多个textbox控件,该怎么解决

c#窗体动态生成多个textbox控件
我是用foeach来循环的,根据xml中对应的Nodelist长度,
foreach (XmlNode xn in nodelist)
            {
                TextBox list = new TextBox();
                this.Controls.Add(list);
                var val = xmldoc.GetElementsByTagName("name");
                list.Text = val[0].ChildNodes[0].Value;
            }

其实用MessageBox测试的话发现应该生成多个textbox的,但实际上只能生成一个textbox,我觉得应该是TextBox list = new TextBox();这里list需要时唯一的,但不知道要怎么修改,求大神帮忙,非常感谢!!!
------解决思路----------------------
你生成了多个TextBox,但因为位置相同,所以界面上看起来就一个
你可以用FlowLayoutPanel来放你的TextBox,这样就看的出来了,或者每个TextBox都设置Location
------解决思路----------------------
你把 this.Controls   的Count  show 出来  如果是一个 那就是你的nodelist 为1;否则就是1L的分析。
------解决思路----------------------
用flowlayoutpanel  作为容器控件
不要用this 作为容器控件

------解决思路----------------------
2楼的说的对  对每个控件的 location 定义下 不要一样,一样就重复了
------解决思路----------------------
1楼说的对,在xml配置里面把位置也配上吧
------解决思路----------------------
引用:
我是用foeach来循环的,根据xml中对应的Nodelist长度,
foreach (XmlNode xn in nodelist)
            {
                TextBox list = new TextBox();
                this.Controls.Add(list);
                var val = xmldoc.GetElementsByTagName("name");
                list.Text = val[0].ChildNodes[0].Value;
            }

其实用MessageBox测试的话发现应该生成多个textbox的,但实际上只能生成一个textbox,我觉得应该是TextBox list = new TextBox();这里list需要时唯一的,但不知道要怎么修改,求大神帮忙,非常感谢!!!

估计是生成的都在同一个位置,看不出效果。
另外,建议给每个TextBox设置ID值

你可以把生成的TextBox添加到不同的容器控件,瞧瞧生成了几个?
------解决思路----------------------
你只是看到一个~~~实际上全部都叠在一起了~~~你为textbox的位置用变量控制试试
------解决思路----------------------
循环运行了几次,这个请自行调试,控件有几个查看 this.Controls.Count 就明白了.
当控件都重叠在一起的时候,眼见也不为实了.
------解决思路----------------------
http://blog.****.net/xianfajushi/article/details/38984387
------解决思路----------------------
确实是位置相同啊,兄弟!!!控件的位置相同 叠加在一起了!
------解决思路----------------------
c#窗体动态生成多个textbox控件,该怎么解决
------解决思路----------------------
上面貌似已经解答了  你应该写个方法来判断弹出来的框框的位置  然后给下一个框框一个相对位置就好了
------解决思路----------------------
引用:
c#窗体动态生成多个textbox控件,该怎么解决

很好,就用这样的方法
------解决思路----------------------
引用:
Quote: 引用:

循环运行了几次,这个请自行调试,控件有几个查看 this.Controls.Count 就明白了.
当控件都重叠在一起的时候,眼见也不为实了.


循环的次数时对的,用MessageBox.Show完全没有问题。但是生成的textbox就算重叠,新生成的那个也应该是在最上面显示吧,但它显示的是生成的第一个的值(我在new的时候就赋值了)

重叠的控件哪个显示在上面,显然与楼主认为的不同啊,只能接受现实了.