Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Winforms中模拟页面之间的导航_C#_.net_Wpf_Winforms_Navigation - Fatal编程技术网

C# 在Winforms中模拟页面之间的导航

C# 在Winforms中模拟页面之间的导航,c#,.net,wpf,winforms,navigation,C#,.net,Wpf,Winforms,Navigation,WPF平台中嵌入了页面类和导航功能。我正在开发一个窗口窗体应用程序,需要类似的功能。在不同窗体之间模拟导航的简单而流畅的方法是什么?或者应该有一个表单和一些容器在里面?如何实现导航功能?创建一个面板并将其停靠到填充 然后BringToFront打开面板 对你需要的每一种“形式”都这样做 编辑:按预期工作: public Form1() { InitializeComponent(); Shown += Form1_Shown; panel1.Dock = DockStyl

WPF平台中嵌入了页面类和导航功能。我正在开发一个窗口窗体应用程序,需要类似的功能。在不同窗体之间模拟导航的简单而流畅的方法是什么?或者应该有一个表单和一些容器在里面?如何实现导航功能?

创建一个面板并将其停靠到
填充

然后
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属性。@Peter17
Visible
可以。但我很惊讶,
BringToFront
不起作用。我在我的答案中添加了代码。在UI线程上调用Sleep(3000)就足以让Windows显示标题栏中带有“Not Response”(无响应)消息的重影窗口。使您无法真正看到面板2被带到前面。这是一个非常糟糕的例子。@HansPassant“这一切正常”=我试过了,看到面板发生了变化。谢谢。但布林托夫隆并没有起作用。我使用了面板的Visible属性。@Peter17
Visible
可以。但我很惊讶,
BringToFront
不起作用。我在我的答案中添加了代码。在UI线程上调用Sleep(3000)就足以让Windows显示标题栏中带有“Not Response”(无响应)消息的重影窗口。使您无法真正看到面板2被带到前面。这是一个非常糟糕的例子。@HansPassant“这一切正常”=我试过了,看到面板发生了变化。