首页 > 解决方案 > 如何从列表中显示表单组件

问题描述

这个问题可能真的很愚蠢,但无论如何都是这样。我希望我的程序做什么:当我按下按钮时,我想将 DatePicker 组件添加到列表中,然后在主窗体中显示所有组件。但是,当我按下按钮时,它只会添加组件,但不会在表单窗口中显示它们。没有错误被抛出。我必须做什么才能在主窗体中显示 DatePicker 组件?

//class containing the List of Components
     class Eintrag
        {
            static public List<DateTimePicker> Anfangszeit = new List<DateTimePicker>();
        }

//Main Form Class
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                Eintrag.Anfangszeit.Add(new DateTimePicker());
                for (int i = 0; i < Eintrag.Anfangszeit.Count; i++)
                {
                    Eintrag.Anfangszeit[i].Location = new System.Drawing.Point(30, 50 + 50*i);
                    Eintrag.Anfangszeit[i].Size = new System.Drawing.Size(200, 20);
                    Eintrag.Anfangszeit[i].Visible = true;
                    Eintrag.Anfangszeit[i].Show();
                }
            }
        }

标签: c#.netwinforms

解决方案


John Wu 是对的,您必须通过Controls.Add()

private void button1_Click(object sender, EventArgs e)
{
    Eintrag.Anfangszeit.Add(new DateTimePicker());
    for (int i = 0; i < Eintrag.Anfangszeit.Count; i++) {
        Eintrag.Anfangszeit[i].Location = new System.Drawing.Point(30, 50 + 50 * i);
        Eintrag.Anfangszeit[i].Size = new System.Drawing.Size(200, 20);
        Eintrag.Anfangszeit[i].Visible = true;
        this.Controls.Add(Eintrag.Anfangszeit[i]);
        Eintrag.Anfangszeit[i].Show();            
    }
}

推荐阅读