【问题标题】:How to load user control to a panel by button click in C#如何通过C#中的按钮单击将用户控件加载到面板
【发布时间】:2018-05-24 05:45:51
【问题描述】:

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

这是我的代码:

关于用户控制

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();
    }

主窗体

用户控制

感谢您的关心。

【问题讨论】:

  • 你希望用户控件是单例的?
  • 对不起,我不明白
  • 我想通过单击仪表板按钮向表单显示用户控件
  • 兄弟,您的代码运行良好。确保您的面板正确放置并在表单上可见
  • 将 UserControl 的静态实例添加到表单不是一个好主意。

标签: c# winforms user-controls panel


【解决方案1】:

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

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);
    }

}

【讨论】:

  • 您能解释一下您的代码是做什么的以及它将如何帮助 OP 解决他的问题吗?还有这是什么p2Form
  • @Amit 我认为 p2form 是用户控件的名称
  • 它是您要在其上添加控件的面板的名称
  • 以上代码会将您对完整表单的控制停靠在面板上
猜你喜欢
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-09
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多