在上篇《winform介面開發之酒店管理系統--開篇
》中介紹了一些介面的東西,本篇開始抽絲剝繭,細緻分析裡面的控制項組成,並公布相關的控制項資源,以饗讀者。
1、按鈕控制項
首先介紹乙個按鈕控制項,這個是乙個vista樣式的控制項,其**是在codeproject上有的:
2、tab控制項
在使用tab控制項做那個房間狀態檢視的時候,由於內建的tab控制項樣式感覺不是很滿意,我參考過很多不一樣的控制項,我覺得比較好的乙個是codeproject上的乙個中國人在日本發表的一篇控制項文章: ,控制項的介面大致如下。
我做的控制項大致的思路是先設計乙個視窗框架,裡面的tabpage可是通過**增加的,由於客房的房間型別是動態變化,而不是固定的,如下圖所示。我們每次new出乙個tabpage的時候,把有圖示的使用者控制項載入(下乙個圖)進去就可以了。
下面這個是winform的使用者控制項,它的職責就是獲取資料庫的房間資訊,根據不同的狀態顯示不同的圖示,然後動態建立,每種房間型別有多少個房間,就動態建立多少個。如下圖所示。
另外我們還需要它繫結相關的業務選單,根據不同的狀態,禁用或者顯示特定的選單,如下圖所示。
這樣我們在最終的介面上就少管很多事情,這樣層層下去,各管各的事情,互不干擾。
public
delegate
void
showstatushandler(roominfo roominfo);
public
showstatushandler onshowstatus
=null;
另外,它也會公布一些介面,給ower對他進行相關的管理,主要是改變檢視型別(大圖示、小圖示、列表顯示),改變房間狀態(空閒、占用、預定等),以及強制重新整理操作。如下**所示。
//////
修改listview的檢視
///
///
public
void
changeviewtype(view viewtype)
//////
修改房間的狀態顯示
///
///
public
void
changeroomstatus(
string
roomstatus)
public
void
updatestatus()
搞定了小的,現在開始搞大的了,就是該使用者控制項的owner窗體,它負責很多個這樣的使用者控制項的建立、更新等操作。下面看看**先。
//////
更新所有房間的狀態顯示
///
public
void
updatestatus()
}page.refresh();}}
public
void
changeviewtype(view viewtype)
}page.refresh();}}
public
void
changeroomstatus(
string
roomstatus)
}page.refresh();}}
上面的**,其實就是遍歷其tabpage中的控制項,並判斷是否特定的控制項,然後進行相關的操作,就是呼叫每乙個控制項公布的介面。
由於控制項的變化,需要通知狀態檢視,進行相應的顯示,如下圖所示。
要實現動態的狀態變化,那麼就需要註冊狀態變化的事件了,我們在構建該使用者控制項的時候,註冊它的變化事件相應即可。如下**所示
private
void
form1_load(
object
sender, eventargs e)
#endregion}
下面的**是就是事件響應**,它的功能就是完成狀態的更新顯示,以及房價費用的顯示。如下圖所示。
更新房間資訊
frmstatus dlg
=portal.gc.maindialog.mainstatus;
if(dlg
!=null
)else}//
portal.gc.maindialog.showmainstatuswin();
#endregion
this
.lblamount.text
=string
.format(
"消費總金額:
", allmoney);}
好了,描述與**齊上,雖不齊整,但希望拋磚引玉能,給各位讀者的思緒及靈感有乙個引橋般的鋪墊,完畢收工。
WinForm介面開發之酒店管理系統 開篇
星移斗轉,時光似箭,不知不覺中,酒店管理系統的開發從開始到現在的結束,已經2個月了,2個月的業餘時間,2個月的生活情趣,都寄託在這個軟體當中,經歷了各種艱苦和困惑,終於得以修成正果 深田之星酒店管理系統的順利發布。技術的歷程是乙個開拓進取 攻克難題的歷程,其中有困惑也有興奮,有苦澀也有甜蜜,在這個過...
WinForm介面開發之酒店管理系統 開篇
星移斗轉,時光似箭,不知不覺中,酒店管理系統的開發從開始到現在的結束,已經2個月了,2個月的業餘時間,2個月的生活情趣,都寄託在這個軟體當中,經歷了各種艱苦和困惑,終於得以修成正果 深田之星酒店管理系統的順利發布。技術的歷程是乙個開拓進取 攻克難題的歷程,其中有困惑也有興奮,有苦澀也有甜蜜,在這個過...
c 與 winform 介面開發
c 與 net 開發,一堆又一堆的新名詞,頭暈目眩,比如 clr apartments sta mta com 吐槽無力,只乙個問題 微軟真的是軟體公司,而不是文學公司?form1.cs 與 form1.designer.cs 是 2 個檔案,一起定義了乙個 form 的行為 樣式等。在 vs201...