如何通过单击一个UserControl中的按钮来显示另一个UserControl?

时间:2019-04-07 08:39:23

标签: c# winforms button user-controls

我对编码非常陌生,此刻,我已经开始使用Windows Form Application启动个人项目。

我有一个带有几个按钮的表单和一个面板作为容器。这些按钮将通过以下链接按预期加载用户控件:https://www.youtube.com/watch?v=wZ63E_9ASwM

但是,在用户控件之一中,我有2个按钮。我想为每个按钮加载用户控件。我不知道该如何进行这项工作。我尝试使用与上述相同的方法但未成功。

我发现了另一个问的是完全相同的问题,但对我来说没有任何意义。 Dynamically loading UserControl after clicking button on another UserControl

我担心用户控件中的2个按钮。如果将用户控件加载到面板容器中,则按钮将消失

有人可以解释这一点吗?或者有更简单的方法来完成这项工作?

这是在Form1(cs)中加载带有2个按钮的用户控件的按钮。

private void Personbutton_Click(object sender, EventArgs e)
{
    panelSelection.Height = Personbutton.Height;
    panelSelection.Top = Personbutton.Top;

    if (!ContainerPanel.Controls.Contains(ucPerson.Instance))
    {
        ContainerPanel.Controls.Add(ucPerson.Instance);
        ucPerson.Instance.Dock = DockStyle.Fill;
        ucPerson.Instance.BringToFront();
    }
    else
        ucPerson.Instance.BringToFront();
}

这是加载到容器中的用户控件。

private static ucPerson _instance;

public static ucPerson Instance
{
    get
    {
        if (_instance == null)
            _instance = new ucPerson();
        return _instance;
    }
}

按下这些按钮时,我想加载另一个/新的用户控件。而不会使按钮消失。

private void CPbutton_Click(object sender, EventArgs e)
{
    CPbutton.FlatAppearance.BorderSize = 1;
    APbutton.FlatAppearance.BorderSize = 0;
}

private void APbutton_Click(object sender, EventArgs e)
{
    APbutton.FlatAppearance.BorderSize = 1;
    CPbutton.FlatAppearance.BorderSize = 0;
}

0 个答案:

没有答案