【发布时间】:2019-03-07 22:04:10
【问题描述】:
这听起来可能很愚蠢,但我很难弄清楚这一点;任何帮助将不胜感激:
我有两个名为“Safety_Check”和“OEE_Track”的用户控件。在我的 MainForm 中,我有一个名为“pnl_main_controller”的面板,用于显示我的两个用户控件。我的主窗体上有两个按钮,我可以在两者之间动态切换,没有任何问题。
Safety_Check 用户控制;
public partial class Safety_Check : UserControl
{
private static Safety_Check _instance;
public static Safety_Check instance
{
get
{
if (_instance == null)
_instance = new Safety_Check();
return _instance;
}
}
public Safety_Check()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
///////------------------------
}
}
OEE_Track 用户控制
public partial class OEE_Track : UserControl
{
private static OEE_Track _instance;
public static OEE_Track instance
{
get
{
if (_instance == null)
_instance = new OEE_Track();
return _instance;
}
}
public OEE_Track()
{
InitializeComponent();
}
}
主窗体:
public partial class MainForm : Form
{
private void btn_reg_Click(object sender, EventArgs e)
{
if (!pnl_main_controller.Contains(Safety_Check.instance))
{
pnl_main_controller.Controls.Add(Safety_Check.instance);
Safety_Check.instance.Dock = DockStyle.Fill;
Safety_Check.instance.BringToFront();
}
else
{
Safety_Check.instance.BringToFront();
} }
private void btn_OEE_Click(object sender, EventArgs e)
{
if (!pnl_main_controller.Contains(OEE_Track.instance))
{
pnl_main_controller.Controls.Add(OEE_Track.instance);
OEE_Track.instance.Dock = DockStyle.Fill;
OEE_Track.instance.BringToFront();
}
else
{
OEE_Track.instance.BringToFront();
}
}
我想要做的是我的“Safety_Check上有一个名为“Button1”的按钮” 用户控件,每当我按下此按钮时,我希望“Safety_Check”在“pnl_main_controller”上消失并带来“OEE_Track”到面板
【问题讨论】:
-
如果你只是想让它消失,那么你可以使用可见属性并将其设置为false,将pnl_main_control可见属性设置为true并在其上调用brigtofront
-
我试过了,Safety_Check.instance.Hide(); main.pnl_main_controller.Controls.Add(OEE_Track.instance); OEE_Track.instance.Dock = DockStyle.Fill; OEE_Track.instance.BringToFront(); Safety_Check 实例将消失,但不会将 OEE_Track 带入面板..