如果要修改这个设计时Form的其它属性该怎么办呢?接下来的更简单了。
切换到
Form1的设计界面,往上面放一个SplitContainer, 再在这个SplitContainer的右panel上放一个PropertyGrid, 并将其Dock属性值设置成Fill
切换到代码编辑界面,将上篇中输入的代码的最后一行改成:

this.splitContainer1.Panel1.Controls.Add(view);
再加上一行:
this.propertyGrid1.SelectedObject = surface.ComponentContainer.Components[0];

运行项目,现在就可以编辑那个设计时Form的其它属性了。

 


除了一点点拖放操作之外,只写了六行代码,就实现这样的功能,有意思吧?

我的这个专题的目标是写一个能用的窗体设计器,有什么用呢?比如您的程序发布后,用户觉得某个控件的位置需要调整,某个控件的字体颜色需要修改,没关系,用户自行修改就是了。更复杂的一点的应用是用户希望在某个单据中增加一个字段,没关系,用户或者实施人员自已加就是了,不要改代码,不要重新编译。甚至用户想增加一些处理,也可以由实施人员现场在设计器中写代码,系统能将其编译好,并在运行时调用。

相关章节:
Form设计器尝试()

下节预告:Form设计器尝试() 在窗体上添加控件。