C# 在Winforms中模拟页面之间的导航
WPF平台中嵌入了页面类和导航功能。我正在开发一个窗口窗体应用程序,需要类似的功能。在不同窗体之间模拟导航的简单而流畅的方法是什么?或者应该有一个表单和一些容器在里面?如何实现导航功能?创建一个面板并将其停靠到C# 在Winforms中模拟页面之间的导航,c#,.net,wpf,winforms,navigation,C#,.net,Wpf,Winforms,Navigation,WPF平台中嵌入了页面类和导航功能。我正在开发一个窗口窗体应用程序,需要类似的功能。在不同窗体之间模拟导航的简单而流畅的方法是什么?或者应该有一个表单和一些容器在里面?如何实现导航功能?创建一个面板并将其停靠到填充 然后BringToFront打开面板 对你需要的每一种“形式”都这样做 编辑:按预期工作: public Form1() { InitializeComponent(); Shown += Form1_Shown; panel1.Dock = DockStyl
填充
然后BringToFront
打开面板
对你需要的每一种“形式”都这样做
编辑:按预期工作:
public Form1()
{
InitializeComponent();
Shown += Form1_Shown;
panel1.Dock = DockStyle.Fill;
panel2.Dock = DockStyle.Fill;
}
void Form1_Shown(object sender, EventArgs e)
{
panel1.BringToFront();
Update();
Thread.Sleep(3000);
panel2.BringToFront();
Update();
Thread.Sleep(3000);
panel1.BringToFront();
}
编辑:添加了Update()代码>是由于注释而产生的。创建一个面板并将其停靠到填充
然后BringToFront
打开面板
对你需要的每一种“形式”都这样做
编辑:按预期工作:
public Form1()
{
InitializeComponent();
Shown += Form1_Shown;
panel1.Dock = DockStyle.Fill;
panel2.Dock = DockStyle.Fill;
}
void Form1_Shown(object sender, EventArgs e)
{
panel1.BringToFront();
Update();
Thread.Sleep(3000);
panel2.BringToFront();
Update();
Thread.Sleep(3000);
panel1.BringToFront();
}
编辑:添加了Update()代码>,因为有评论。谢谢。但布林托夫隆并没有起作用。我使用了面板的Visible属性。@Peter17Visible
可以。但我很惊讶,BringToFront
不起作用。我在我的答案中添加了代码。在UI线程上调用Sleep(3000)就足以让Windows显示标题栏中带有“Not Response”(无响应)消息的重影窗口。使您无法真正看到面板2被带到前面。这是一个非常糟糕的例子。@HansPassant“这一切正常”=我试过了,看到面板发生了变化。谢谢。但布林托夫隆并没有起作用。我使用了面板的Visible属性。@Peter17Visible
可以。但我很惊讶,BringToFront
不起作用。我在我的答案中添加了代码。在UI线程上调用Sleep(3000)就足以让Windows显示标题栏中带有“Not Response”(无响应)消息的重影窗口。使您无法真正看到面板2被带到前面。这是一个非常糟糕的例子。@HansPassant“这一切正常”=我试过了,看到面板发生了变化。