WinForm介面開發之酒店管理系統 控制項篇

2021-09-05 22:08:45 字數 3066 閱讀 4029

在上篇《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...