当前位置: 代码迷 >> 综合 >> WinForm开发(9)——Winform相关基础——模态(Modal)窗口、主窗口和对话框之间传递参数、MDI风格、开发登陆界面
  详细解决方案

WinForm开发(9)——Winform相关基础——模态(Modal)窗口、主窗口和对话框之间传递参数、MDI风格、开发登陆界面

热度:67   发布时间:2023-10-02 00:51:09.0

1、显示窗口的两种方式:

(1)非模态(Modaless):Show

(2)模态(Modal),阻塞主窗口:ShowDialog()

两者的区别是:在非模态窗口中,弹出对话框后,鼠标还可以点击移动主窗口;在模态窗口中,弹出对话框后,鼠标就不能再动主窗口了。

 

2、主窗口和对话框之间传递参数,在对话框中声明属性,主窗口给对话框传递值通过参数赋值,对话框在OnLoad中读取参数值,对话框通过属性也返回值给主窗口。例子:开发收集输入的对话框InputDialog。设定对话框按钮的DialogResult属性,就可以关闭窗口(只有ShowDialog出来的界面才会这样)。不要直接访问其他窗口的控件。

3、、MDI风格:(使弹出的新窗口始终在父窗口中)

(1)form.MdiParent = this;

(2)把主窗口的IsMDIContainer设为true

(3)如何使每个界面只能打开一个?有时间再去思考吧。

二、开发登陆界面

4、暂时不用数据库做登录。Application.Run的窗口不能作为登录界面,因为Application.Run 起来的窗口是主窗口,主窗口适合长期显示,主窗口一旦关闭程序就终止了。

5、专业化的登陆界面:

  • 启动时窗口位于屏幕中央StartPosition=CenterScreen
  • 设定AcceptButton,当点击回车键要响应的按钮,这样不用很土的点击按钮才能触发。设定CancelButton,当点击ESC键时要响应的按钮。
  • 设定按钮的DialogResult,当点击按钮的时候窗口关闭,并且执行操作。设定窗口的DialogResult即可关闭窗口并且让ShowDialog方法返回设置的值。
  • 对话框的风格,不能随意的拖放大小、最大化FormBorderStyle=FixedDialog MinimizeBox=False MaximizeBox=False

6、注释常见错:*/中间不能有空格。

  相关解决方案