注册 登录
编程论坛 C# 论坛

新窗口实例化控件的问题

Xieup1 发布于 2014-03-12 15:21, 572 次点击
第一个窗口
程序代码:

namespace ADC4TestCSVersion
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            new FormDetect().ShowDialog();
        }
    }
}


第二个窗口
程序代码:

namespace ADC4TestCSVersion
{
    public partial class FormDetect : Form
    {
        Label[] Chanel = new Label[4];

        public FormDetect()
        {
            InitializeComponent();
        }

        private void FormDetect_Load(object sender, EventArgs e)
        {
            for (int i = 0; i <= 3; i++)
            {
                Chanel[i].Size=new Size(100,50);
                Chanel[i].Location = new Point(50+i*75,12);
                Chanel[i].Visible = true;
                Chanel[i].Text = "Chanel " + i + ": ";
                Controls.Add(Chanel[i]);
            }
        }


    }
}


在第一个窗口中
通过ButtonClick调用第二个窗口
然后再通过代码实例化控件
可是每次运行到
                Chanel[i].Size=new Size(100,50);
后面的语句就跳过了
显示的还是一个空白的窗口

为什么会这样子呢?


请高手指导一下


Thank U
2 回复
#2
wangnannan2014-03-12 15:27
                Chanel[i] = new Label();加上这句 懒得跟你解释 多看看书
程序代码:
                Chanel[i] = new Label();
                Chanel[i].Size = new Size(100, 50);
                Chanel[i].Location = new Point(50 + i * 75, 12);
                Chanel[i].Visible = true;
                Chanel[i].Text = "Chanel " + i + ": ";
                Controls.Add(Chanel[i]);


[ 本帖最后由 wangnannan 于 2014-3-12 15:29 编辑 ]
#3
Xieup12014-03-12 15:57
以下是引用wangnannan在2014-3-12 15:27:46的发言:

                Chanel = new Label();加上这句 懒得跟你解释 多看看书                Chanel = new Label();
                Chanel.Size = new Size(100, 50);
                Chanel.Location = new Point(50 + i * 75, 12);
                Chanel.Visible = true;
                Chanel.Text = "Chanel " + i + ": ";
                Controls.Add(Chanel);

恩,确实可以了。
1