如何将winforms中的一个用户控件从另一个用户控件中移到前面?

zsbz8rwp  于 2023-01-09  发布在  其他
关注(0)|答案(1)|浏览(154)

我有一个窗体,命名为MainView。在MainView中我有一个用户控件:

我在用户控件中做了一些事情,然后点击“确定”。由于确定按钮,我想隐藏这个用户控件并打开另一个。但是我不能从第一个用户控件访问另一个用户控件。

hi3rlvi2

hi3rlvi21#

创建“将用户控件置于最前面”的外观的一种简单方法是,当单击[OK]按钮时,让每个用户控件本身为Hide()。然后,主窗体可以根据第一个窗体的不可见性修改“其他”窗体的可见性:

主视图

单击“确定”按钮时切换用户控件的可见性。

public partial class MainView : Form
{
    public MainView()
    {
        InitializeComponent();
        userControlB.Visible= false;
        userControlA.VisibleChanged += (sender, e) =>
        {
            if(!userControlA.Visible)
            {
                userControlB.Visible = true;
            }
        };
        userControlB.VisibleChanged += (sender, e) =>
        {
            if (!userControlB.Visible)
            {
                userControlA.Visible = true;
            }
        };
    }
}

用户控件A

public partial class UserControlA : UserControl
{
    public UserControlA()
    {
        InitializeComponent();
        buttonOK.Click += (sender, e) =>
        {
            Hide();
        };
    }
}

用户控件B

public partial class UserControlB : UserControl
{
    public UserControlB()
    {
        InitializeComponent();
        buttonOK.Click += (sender, e) =>
        {
            Hide();
        };
    }
}

相关问题