在Windows窗体中以编程方式添加新用户控件

时间:2013-07-08 15:21:34

标签: c# winforms user-controls

嘿,所以首先我要指出,我知道在这里有关于这个话题的其他几个问题,我甚至自己以前做过这个问题。我在这里问,因为我不知道我的问题是什么。

以下是我尝试显示新用户控件的代码

private void ValidationLabel_Click(object sender, EventArgs e)
    {
        EntrySuggestion t_ES = new EntrySuggestion();
        t_ES.Show();
        MainScreen home = new MainScreen();
        home.Show();
    }

我试图让t_ES显示(它没有)但是主屏幕会显示。这两个都是用户控件。

以下是我的EntrySuggestion用户控件的代码

 using System;
using System.Collections;
using System.Windows.Forms;

namespace TeamManagementSystem
{
    public partial class EntrySuggestion : UserControl
    {
        private ArrayList items = new ArrayList();

        public EntrySuggestion()
        {
            InitializeComponent();
        }

        public EntrySuggestion(ArrayList i)
        {
            InitializeComponent();
            items = (ArrayList)i.Clone();
        }

        private void EntrySuggestion_Load(object sender, EventArgs e)
        {
            foreach (string item in items)
            {
                RadioButton t_RB = new RadioButton();
                t_RB.Text = item;
                ItemSuggestionTable.Controls.Add(t_RB);
            }
        }
    }
}

我确实想要使用第二个构造函数,但我无法使用它。任何帮助都会很棒

3 个答案:

答案 0 :(得分:4)

您需要将用户控件添加到主窗体(或已存在的其他容器)的显示表面

    MainScreen home = new MainScreen();
    home.Show();
    EntrySuggestion t_ES = new EntrySuggestion();
    home.Controls.Add(t_ES);

答案 1 :(得分:0)

使条目建议继承表单类或使用form.Controls.Add将其添加到现有表单。请记住,它是一个用户控件,而不是用户表单,因此它不能支持自己,它需要一个容器,最终它必须有一个包含它的表单。

答案 2 :(得分:0)

将您的用户控件添加到表单:

home.Controls.Add(t_ES);