摘要:几乎所有人编写的Windows Forms程序都是直接采用Visual Studio的窗体设计器继承一个窗体,再加以设计。虽然可视化很方便而且广为使用,但是在项目中添加一大堆窗体类真的有必要吗?有些窗体很简单而且只使用一次,也需要为此创建一个新的类型吗?
不知道有没有人像这样写窗体:不继承Form类,而是修饰Form类,直接在Form类的实例上添加控件,然后显示。如下面这个例子(稍微用了一下C#2.0的语法):
Form f1 = new Form();f1.Size = new Size(400, 300);f1.Location = new Point(200, 200);f1.Text = "New Decorated Form";
Button b1 = new Button();b1.Text = "&Say Hello";b1.Size = new Size(100, 30);b1.Location = new Point(60, 50);b1.Click += delegate{ MessageBox.Show("Hello, World");};
f1.Controls.Add(b1);f1.Show();
将这段代码放到Main里面就能生成一个完整的应用程序,不但按钮的事件可以通过这种方式响应,Form的事件,如Load或Paint也可以这样使用。
我觉得修饰From的方法在有些简单应用里比继承Form的方法更好,它不会产生新的类型,还可以在当前类型中处理新窗体的控件和事件,这给窗体间的数据交换带来了很大方便。...[
阅读全文]