您的位置:首页 > 其它

机房收费系统重构---界面设计

2013-09-30 16:43 211 查看
终于开始做机房收费系统个人版了。最初是想着如何如何复杂,自己前怕狼后怕虎的,哆哆嗦嗦就是下不了手。一画图10几天过去了,一考试一个星期又过去了。现在总算是入手了,思路也渐渐清晰起来。问题也随之而来:在做frmMain这个窗体时,添加的TextBox和Label的大小不随窗体最大化而改变。找了一些资料,总结了一种方法。

使用VS中给出的控件TableLayoutPanel(表格布局面板),配合Anchor或Dock属性进行设置。我们先了解一下Anchor和Dock这两个属性。之前在vb6.0中没有。

Anchor在msdn上的解释:获取或设置控件绑定到的容器的边缘并确定控件如何随其父级一起调整大小。将控件锚定到其父控件后,可确保当调整父控件的大小时锚定的边缘与父控件的边缘的相对位置保持不变。默认值为left和top.

Dock在msdn上的解释为:获取或设置哪些控件边框停靠到其父控件并确定控件如何随其父级一起调整大小。默认值为none.

注意:Anchor 和 Dock属性是互相排斥的。 每次只可以设置一个属性,最后设置的属性优先。这两个属性都可以随父级一起调整大小,但有区别:Anchor可以确保锚定的边缘与父边缘的相对位置保持不变,而Dock是停靠在父窗体的边缘,其中的一个值Fill---填充整个空间。

我设计界面时有很多的Textbox和Label控件,只使用Anchor或Dock显然不能达到要求。这时就需要将界面进行布局,划分到更小的单元,再使用这两个属性就可以达到要求了。

先看一下我做出来的结果图:



最外面的11行2列的表格就是TableLayoutPanel控件,它的行列调整可以通过属性框中设定:如图:



每个格内有一个标签和一个文本框,这里面又添加了一个1行2列的TableLayoutPanel控件,Label的Dock属性设置为Right,Textbox的Dock属性设为为fill,当然这里可以通过需要设置Anchor属性,很灵活。

总结:这个知识点给我最大的收获就是有了想法后去试,试是深入了解的第一步。只有试了才有可能进一步了解,也只有试过了才能将知识灵活掌握。除此之外编写函数也能实现这个功能。代码实现我还没有实践过,等下次加入设计模式时使用代码实现一次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: