C# Windows窗体如何操作不同的屏幕

C# Windows窗体如何操作不同的屏幕,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我有asp.net c的程序,但现在我需要在windows窗体中创建一个应用程序,我尝试查看一些教程,但它们都只显示一个窗体。如何在windows窗体中实现此概念 在asp.net中,您可以创建一个页面,并使用文本框、下拉列表等控件填充该页面。。也许一个按钮上有“下一步”,那么你就会有另一个页面,它有不同的控件,也有自己的功能。因此,当您单击next时,您将执行类似于Response.Redirect(“SomePage.aspx”)例如 这在windows窗体中是如何实现的?我可以拥有多个窗体

我有asp.net c的程序,但现在我需要在windows窗体中创建一个应用程序,我尝试查看一些教程,但它们都只显示一个窗体。如何在windows窗体中实现此概念

在asp.net中,您可以创建一个页面,并使用文本框、下拉列表等控件填充该页面。。也许一个按钮上有“下一步”,那么你就会有另一个页面,它有不同的控件,也有自己的功能。因此,当您单击next时,您将执行类似于
Response.Redirect(“SomePage.aspx”)例如

这在windows窗体中是如何实现的?我可以拥有多个窗体并从一个窗体导航到另一个窗体吗?如果是这样,在从一个导航到另一个导航时,如何持久化数据

如果问题太简单,请原谅,但我不熟悉windows窗体

任何帮助都将不胜感激


关于

基本上,您有一个父窗体,可以派生出任意数量的子窗体。因此,在内存中持久化数据的情况下(否则只使用数据库、文件或…),可以在表单之间来回传递数据,也可以将其全部存储在父表单中,并从子表单访问父表单中的数据。我似乎找不到这方面的良好视觉表现,但我尝试了以下方法:

Parent
|
|-->Child
  |
  |->GrandChild
|
|->Child2
因此,父级将创建一个新表单,并使用Show或showmodel显示它,其中model意味着当表单显示时,应用程序中的任何其他内容都不能具有焦点。而且,父窗体是所有窗体的根,因此在父窗体关闭之前,应用程序保持打开状态

第二种可能性

您可以创建在主窗体的面板中交换的不同控件。这可能更接近你在网络上所期望的。因此,基本上,您从默认屏幕或空屏幕开始。如果它是一个默认屏幕,那么它将只是一个位于主窗体面板中的控件。单击按钮时,可以删除旧控件并创建新控件以放置在其位置,也可以创建新控件并将其放置在旧控件的顶部,以便旧控件“消失”(直到“关闭”/“销毁该控件”)

如果这不合理,请告诉我,我将尝试更彻底地解释这个概念

您也可以制作并用控件填充它们。然后您可以从表单或容器中添加或删除它们。这就是我在应用程序中切换编辑页面的方式

使用2个
UserControls
面板作为容器的简单示例:

public partial class Form1 : Form
{
    UserControl1 usr1 = new UserControl1();
    UserControl2 usr2 = new UserControl2();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        panel1.Controls.Clear();
        panel1.Controls.Add(usr1 );
    }

    private void button2_Click(object sender, EventArgs e)
    {
        panel1.Controls.Clear();
        panel1.Controls.Add(usr2 );
    }
}