機房收費系統重構 介面設計

2021-06-18 14:12:01 字數 1177 閱讀 7839

終於開始做機房收費系統個人版了。最初是想著如何如何複雜,自己前怕狼後怕虎的,哆哆嗦嗦就是下不了手。一畫圖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屬性,很靈活。

總結:這個知識點給我最大的收穫就是有了想法後去試,試是深入了解的第一步。只有試了才有可能進一步了解,也只有試過了才能將知識靈活掌握。除此之外編寫函式也能實現這個功能。**實現我還沒有實踐過,等下次加入設計模式時使用**實現一次。

重構機房收費系統 起步

開始機房收費系統重構也半個月過去了。但看自己的系統連乙個簡單的登入還沒有實現。自己不免有些慚愧了。最近自己的學習狀態總的來說還是不錯的。但是由於自己對原來的知識掌握的不好所以導致了自己不知如何下手。總是感覺有好多的問題要解決 寫軟體開發文件。畫資料流程圖 畫e r圖畫 uml圖 學習使用 ea建立資...

重構機房收費系統 資料庫設計

弄完了三層的例子後,機房重構早就該開始了,但是自己一直不想動,萬事開頭難,機房收費的重構,先是資料庫的設計問題,開始包括er圖的設計。然後設計資料庫,設計表.現在想想自己資料庫的設計。首先先想一想上下機的整個流程,乙個學生拿著卡來到老師面前,老師講學生的卡啟用,學生在拿著卡去找機子上機,假如學生沒有...

重構機房收費系統(一)

從10月 1號開始重構學校機房收費系統 沒想到這次重構,推翻 再重構 用了兩周時間。這次整體架構採用三層,並融入了一些設計模式。下面介紹這次重構的過程 一 從uml 用例圖開始 對於機房收費系統的需求已經很熟悉了,用例和角色都已經提取出來了,在這裡遇到乙個問題,就是,究竟是根據角色劃分用例,還是根據...