.NET第四章Windows窗体编程
2.创建MDI窗体应用
MDI就是多文档界面,这是因为Excel电子表格用户有时需要同时操作多份表格,MDI正好为这种操作提供了很大方便
要在主窗体上添加子窗体就要先把当前窗体设定为一个MDI窗体的容器(即把窗体的IsMdiContainer属性设置为True)
在MDI父窗体实现增加一个子窗体
代码: From childFrom = new From();
childFrom.Mdiparent = this;
childFrom.Text = "窗口" + childFromNumber++;
childFrom.Show();
8.
在具体应用中可能还要考虑把这些东西放置到Paint或erasebkground等事件中。
3.获取应用程序路径信息
桌面Windows程序开发,有时候需要读取当前目录下的文件,有时候需要在当前目录下创建文档,甚至有时候自升级也需要知道应用程序当前所在的目录。
下面为几种获取文件路径信息的方法的代码:
4.回车跳转控件焦点
客服每天需要快速录入客户反馈的信息,而如何让他们节省跟多的时间,让他们以最快的速度,最少的操作时间来完成信息的录入成为很关键的因素,尽量避免用鼠标操作则是其关键流程之一。
下面为代码示例:
这样当我们按回车键时,就会自动跳转到下一行。
5.窗体间传递复杂数据
在程序设计中,数据不仅要在同一个窗体中传递,还要在窗体间传递。有时需要在相互调用的窗体间传递比较复杂的数据,甚至需要子窗体修改父窗体的内容。
下面为几种窗体间数据传递的方法:
(1)构造传递
(2)公有字段传递
1)在Form1中定义public字段
把private System.Windows.Forms.TextBox textBox1;改为public System.Windows.Forms.TextBox textBox1;。
或定义一个公有字段,这样更符合面向对象的封装性
2)From2增加一个公共属性和构造函数,用于接收传值。
3)在From1中创建并调用From2。
(3)委托与事件传递
功能:实现在子窗体中改变父窗体的内容,通过委托和事件来传值给父窗体。
(1)定义一个结果对象,用来存放子窗体返回的结果。同时定义一个事件,可以让一个子窗体修改父窗体的状态。代码如下:
这样避免了在子窗体直接调用父窗体对象,有效降低了二者之间的依赖性级耦合性。父窗体改变后不需要重新编译子窗体。两个窗体都同时依赖于结果对象,更好的满足了面对对象的封装性和“依赖倒置”的原则。运行结果:
6.实现个性化窗体界面
在C#中通过少量的代码实现不规则个性化窗体的制作。
(1)准备一张照片,对打算使其透明的地方使用白色背景(为了效果,最好是BMP位图)
7.无标题窗体拖动的两种方法
实现了个性化不规则窗体后整个窗体就是一个图形,没有了标题栏和关闭按钮等是无法拖动和移动窗体的。而拖动这样的窗体有两种方法:
(1)通过鼠标事件实现
(2)调用API实现