C# Winform中如何实现窗体之间的跳转

C# Winform中如何实现窗体之间的跳转,第1张

实现窗体之间的跳转在同一个项目中我有两个窗体,如何指定某一个窗体为我的程序运行时的第一个窗口?static void Main(){Application.Run(new FormName())}FormName就是你想启动的第一个窗体。实现窗体之间的跳转:程序首先运行的是“登录”窗体,如果是新用户,就需要注册,再登录窗体,单击注册按钮,打开学生注册窗体,怎么实现这个功能呢?就需要实现窗体之间的跳转。显示窗体的方法有两种:一种是Show()方法,另一种是ShowDialogue()方法,前者是直接显示,后者是以模式对话框的方式显示。这里先介绍第一种方法:分为两步首先创建窗体对象,然后再显示窗体。语法如下被调用的窗体类 对象名=new 被调用的窗体类()对象名.Show()示例:首先打开窗体“frmLogin”,双击“注册”按钮,在注册按钮的Click事件里编写代码:private void btnReg_Click(object sender,EventArgs e){frmRegister objfrm=new frmRegister()objfrm.Show()}我们再来看第二种方法:模式对话窗体showDialog()的使用面对多窗口的调用的时候,我们往往不喜欢窗口之间的随意切换,那样还要花费时间寻找我们需要的窗口。

首先 program.cs 中

[STAThread]

static void Main()

{

    Application.EnableVisualStyles()

    Application.SetCompatibleTextRenderingDefault(false)

// 自动生成的代码是这样的

    // Application.Run(new Form1())

// 表示 实例化一个新的 Form1 并显示之 此时程序进入消息循环

    // 一旦 Form1 被关闭则程序也随之关闭了

    // 为了让程序在 Form1 关闭后可以继续运行 需要修改下

new Form1().Show()

    Application.Run()

// 这样做就能避免 Form1 被关闭后程序自动退出了

// 但这样做的风险是什么呢?

    // 一旦用户忘记了 Application.Exit()

    // 则程序在所有窗口关闭后 其进程仍然没有结束

    // 所以 Application.Exit()这行代码是需要手动添加的

}

Form1:Button_Click

Form2 f = new Form2()

f.Show()

this.Close()

Form2:Button_Click

Form1 f = new Form1()

f.Show()

this.Close()

注意:当最后一个窗口关闭时要调用 Application.Exit()否则程序进程是不会结束的

解决办法:(假设Form2是最后一个窗口)

private void Panel1_Click(object sender, EventArgs e)

{

    Form2 f2 = new Form2()

    f2.Closed += new EventHandler(this.f2_Closed)

 //f2.Closed += (obj, args) =>{ Application.Exit()}

    f2.Show()

    this.Close()

}

private void f2_Closed(object sender, EventArgs e)

{

    Application.Exit()

}

一般来说,一个程序最好应该只有一个窗口。

如果您要使用多个窗口的话,有这样几种方法,仅供参考:

1 把其他的窗口做成控件,放在主窗口上,在主窗口中添加切换子控制代码。

2 隐藏当前窗口,显示下一个窗口;

3 如果两个窗口不用共享数据,可以把下一个窗口做成独立exe,调用exe。

4 使用高级的框架技术控制子窗体的内容,比如prism, 管线开发等,但是跳转判断还是在主程序做出。

希望可以帮到您。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11864437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存