Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中通过单击按钮将用户控件加载到面板#_C#_Winforms_User Controls_Panel - Fatal编程技术网

C# 如何在C中通过单击按钮将用户控件加载到面板#

C# 如何在C中通过单击按钮将用户控件加载到面板#,c#,winforms,user-controls,panel,C#,Winforms,User Controls,Panel,我想用一个按钮将一个用户控件加载到一个面板上,但当我尝试这段代码时,它什么也没有显示。我想知道我的问题是否有解决办法,因为我已经尝试了许多来自互联网的解决方案,但都没有效果 这是我的代码: 关于用户控制 public partial class UserControl1 : UserControl { public static UserControl1 _instance; public static UserControl1 Instance { get {

我想用一个按钮将一个用户控件加载到一个面板上,但当我尝试这段代码时,它什么也没有显示。我想知道我的问题是否有解决办法,因为我已经尝试了许多来自互联网的解决方案,但都没有效果

这是我的代码:

关于用户控制

public partial class UserControl1 : UserControl
{
    public static UserControl1 _instance;
    public static UserControl1 Instance {
        get {
            if (_instance == null)
                _instance = new UserControl1();
            return _instance;
        }
    }
    public UserControl1()
    {
        InitializeComponent();
    }
}
在winform上单击按钮

private void b1_Click(object sender, EventArgs e)
    {
        if (!panel5.Controls.Contains(UserControl1.Instance))
        {
            panel5.Controls.Add(UserControl1.Instance);
            UserControl1.Instance.Dock = DockStyle.Fill;
            UserControl1.Instance.BringToFront();
        }
        else
            UserControl1.Instance.BringToFront();
    }
主要形式

用户控制

谢谢你的关心。

试试这个。 希望这对你有帮助

private void set2ControlTopanel(control f) {

    try {
        p2Form = f;
        p2Form.Dock = DockStyle.Fill;
        p2Form.Show();
        panelTop.Controls.Add(p2Form);
        p2Form.BringToFront();
    }
    catch (Exception ex) {
        MsgBox(ex.Message);
    }

}

你想让用户控件是单例的吗?对不起,我不明白。我想通过单击仪表板按钮向窗体显示用户控件。另外,你的代码工作正常。确保您的面板正确放置并且在表单上可见。将UserControl的静态实例添加到表单中不是一个好主意。您能解释一下您的代码的作用以及它如何帮助OP解决问题吗?还有,这是什么?@Amit我认为p2Form是用户控件的名称,它是要添加控件的面板的名称。移动代码会将完整窗体的控件停靠到面板上