日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

控件下載地址(開源)

http://sourceforge.net/projects/dockpanelsuite/

原文:http://www.cnblogs.com/wuhuacong/archive/2009/07/09/1520082.html

本篇介紹Winform程序開發中的布局界面的設計,介紹如何在我的共享軟件中使用布局控件"WeifenLuo.WinFormsUI.Docking"。

布局控件"WeifenLuo.WinFormsUI.Docking"是一個非常棒的開源控件,用過的人都深有體會,該控件之強大、美觀、不亞于商業控件。而且控件使用也是比較簡單的。先看看控件使用的程序界面展示效果。

配電網絡可視化管理系統的界面截圖:

深田之星送水管理系統網絡版的界面截圖:

我在幾個共享軟件都使用了該布局控件,我們先以“深田之星送水管理系統網絡版”這款軟件為例,介紹如何完成該界面的設計及顯示的。

1、首先,我們添加一個主界面窗體,命名為MainForm,該窗體IsMdiContainer設置為True,也就是設置為多文檔窗體格式。拖拉布局控件"WeifenLuo.WinFormsUI.Docking.DockPanel"到主窗體MainForm中,并設置下面幾個屬性:

Dock為Fill、DocumentStyle為DockingMdi、RightToLeftLayout為True。

這幾個屬性的意思應該不難,Dock就是?覆蓋整個MDI窗體的區域,DocumentStyle為多文檔類型、RightToLeftLayout是指新打開的窗口都停靠在右邊區域。

我們看看設計界面視圖如下所示。

2、主界面其實基本上就可以了,另外我們看到“送水管理系統網絡版”的界面中有一個左邊的工具欄,它其實也是在一個停靠的窗體中的,我們增加一個窗體用來承載相關的工具快捷鍵按鈕展示。命名為MainToolWindow的窗體,繼承自WeifenLuo.WinFormsUI.Docking.DockContent.

其中的“HideOnClose”屬性很重要,該屬性一般設置為True,就是指你關閉窗口時,窗體只是隱藏而不是真的關閉。

左邊的窗口MainToolWindow實現停靠的代碼是在MainForm的構造函數或者Load函數中加載即可。

mainToolWin.Show(this.dockPanel, DockState.DockLeft);

?3、對于工具窗口我們已經完成了,但是主業務窗口還沒有做,也就是下面的部分內容。

為了方便,我們定義一個基類窗體,命名為BaseForm,繼承自DockContent,如下所示

public class BaseForm : DockContent

然后每個業務窗口繼承BaseForm即可。

4、剩下的內容就是如何在主窗體MainForm中展示相關的業務窗口了,展示的代碼如下所示

????public?partial?class?MainForm?:?Form
????{
????????
#region?屬性字段

?????????
private?MainToolWindow?mainToolWin?=?new?MainToolWindow();
????????
private?FrmProduct?frmProduct?=?new?FrmProduct();
????????
private?FrmCustomer?frmCustomer?=?new?FrmCustomer();
????????
private?FrmOrder?frmOrder?=?new?FrmOrder();
????????
private?FrmStock?frmStock?=?new?FrmStock();
????????
private?FrmComingCall?frmComingCall?=?new?FrmComingCall();
????????
private?FrmDeliving?frmDeliving?=?new?FrmDeliving();
????????
private?FrmTicketHistory?frmHistory?=?new?FrmTicketHistory();?

????????
#endregion

????????
public?MainForm()
????????{
????????????InitializeComponent();

????????????SplashScreen.Splasher.Status?
=?"正在展示相關的內容";
????????????System.Threading.Thread.Sleep(
100);

????????????mainToolWin.Show(
this.dockPanel,?DockState.DockLeft);
????????????frmComingCall.Show(
this.dockPanel);
????????????frmDeliving.Show(
this.dockPanel);
????????????frmHistory.Show(
this.dockPanel);
????????????frmStock.Show(
this.dockPanel);
????????????frmProduct.Show(
this.dockPanel);
????????????frmCustomer.Show(
this.dockPanel);
????????????frmOrder.Show(
this.dockPanel);

????????????SplashScreen.Splasher.Status?
=?"初始化完畢";
????????????System.Threading.Thread.Sleep(
50);

????????????SplashScreen.Splasher.Close();
????????}

?

5.下面貼出基本窗口的基本操作事件函數

????????private?void?menu_Window_CloseAll_Click(object?sender,?EventArgs?e)
????????{
????????????CloseAllDocuments();
????????}

????????
private?void?menu_Window_CloseOther_Click(object?sender,?EventArgs?e)
????????{
????????????
if?(dockPanel.DocumentStyle?==?DocumentStyle.SystemMdi)
????????????{
????????????????Form?activeMdi?
=?ActiveMdiChild;
????????????????
foreach?(Form?form?in?MdiChildren)
????????????????{
????????????????????
if?(form?!=?activeMdi)
????????????????????{
????????????????????????form.Close();
????????????????????}
????????????????}
????????????}
????????????
else
????????????{
????????????????
foreach?(IDockContent?document?in?dockPanel.DocumentsToArray())
????????????????{
????????????????????
if?(!document.DockHandler.IsActivated)
????????????????????{
????????????????????????document.DockHandler.Close();
????????????????????}
????????????????}
????????????}
????????}

????????
private?DockContent?FindDocument(string?text)
????????{
????????????
if?(dockPanel.DocumentStyle?==?DocumentStyle.SystemMdi)
????????????{
????????????????
foreach?(Form?form?in?MdiChildren)
????????????????{
????????????????????
if?(form.Text?==?text)
????????????????????{
????????????????????????
return?form?as?DockContent;
????????????????????}
????????????????}

????????????????
return?null;
????????????}
????????????
else
????????????{
????????????????
foreach?(DockContent?content?in?dockPanel.Documents)
????????????????{
????????????????????
if?(content.DockHandler.TabText?==?text)
????????????????????{
????????????????????????
return?content;
????????????????????}
????????????????}

????????????????
return?null;
????????????}
????????}

????????
public?DockContent?ShowContent(string?caption,?Type?formType)
????????{
????????????DockContent?frm?
=?FindDocument(caption);
????????????
if?(frm?==?null)
????????????{
????????????????frm?
=?ChildWinManagement.LoadMdiForm(Portal.gc.MainDialog,?formType)?as?DockContent;
????????????}

????????????frm.Show(
this.dockPanel);
????????????frm.BringToFront();
????????????
return?frm;
????????}

????????
public?void?CloseAllDocuments()
????????{
????????????
if?(dockPanel.DocumentStyle?==?DocumentStyle.SystemMdi)
????????????{
????????????????
foreach?(Form?form?in?MdiChildren)
????????????????{
????????????????????form.Close();
????????????????}
????????????}
????????????
else
????????????{
????????????????IDockContent[]?documents?
=?dockPanel.DocumentsToArray();
????????????????
foreach?(IDockContent?content?in?documents)
????????????????{
????????????????????content.DockHandler.Close();
????????????????}
????????????}
????????}?

?

最后呈上該控件文件,大家可以下來玩玩。

http://files.cnblogs.com/wuhuacong/WeifenLuo.WinFormsUI.Docking.rar

主要研究技術:代碼生成工具、Visio二次開發、送水管理軟件等共享軟件開發
專注于Winform開發框架、WCF開發框架的研究及應用。
??轉載請注明出處:
撰寫人:伍華聰??http://www.iqidi.com?
???? 標簽:?WinForm界面開發

總結

以上是生活随笔為你收集整理的WinForm界面开发之布局控件WeifenLuo.WinFormsUI.Docking的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 聚色屋 | 精品一区二区三区免费毛片 | 欧美色涩在线第一页 | 欧美日韩成人在线播放 | 午夜免费网 | 夜夜嗨av一区二区三区 | 亚洲天堂2020 | 国产精品久久久久久久av福利 | 一区二区三区在线观看免费视频 | 美女啪啪无遮挡 | 精品乱码一区内射人妻无码 | 蜜臀aⅴ免费一区二区 | 国产亚洲综合在线 | 国产精品一区二区免费 | 国产午夜一级 | 羞辱狗奴的句子有哪些 | 亚洲av永久无码精品三区在线 | 欧美高清性xxxxhd | 日韩黄网 | 国产91在线 | 亚洲 | 懂色av一区二区三区四区五区 | 青青青免费在线视频 | 日本在线观看一区 | 捆绑无遮挡打光屁股调教女仆 | 韩国三级黄色 | 黄床大片| 精品久久久久久久久久久 | 日本午夜一区二区 | 男人和女人插插 | 午夜精品久久久久久久 | 四虎影视成人永久免费观看亚洲欧美 | 国产高潮在线 | 亚洲网站av | 日本欧美不卡 | 色一情 | av在线免| 色视频免费在线观看 | 亚洲男人天堂av | 日日人人 | 欧美亚州| 每日更新在线观看av | 国产丝袜高跟 | 国产精品久久综合青草亚洲AV | 人妻精品一区一区三区蜜桃91 | 亚洲大胆 | 成人18网站| 五月天激情啪啪 | 亚洲精华国产精华精华液网站 | 日本激情一区二区三区 | 欧美一区在线看 | 香蕉视频毛片 | 国产露脸无套对白在线播放 | 性一交一乱一伧国产女士spa | 伊人黄色| 一级片中文 | 亚洲一区天堂 | 日韩欧美综合一区 | 国产精品偷伦视频免费观看了 | 秋霞av鲁丝片一区二区 | 午夜精品久久久久久久爽 | 日本a一级| 国产精品日韩欧美一区二区三区 | 成人做爰视频www | 一级日批片 | 农村搞破鞋视频大全 | 日韩欧美精品国产 | 久草热在线 | 长河落日电视连续剧免费观看01 | 国产精品一区二区性色av | 一本大道一区二区 | 国产欧美一区二区 | 抽插丰满内射高潮视频 | 欧美日韩精品中文字幕 | 欧美性视频在线 | 国产成人精品亚洲日本在线观看 | 亚洲爽片 | 丰满人妻在公车被猛烈进入电影 | 色呦呦在线 | 永久国产| 成人不卡在线 | 久久国语精品 | www.youjizz.com日本 | 国产无精乱码一区二区三区 | 2019国产精品 | 91国偷自产一区二区三区女王 | 最新亚洲精品 | www香蕉| 91热精品| 国产91热爆ts人妖系列 | 亚洲欧美国产精品久久久久久久 | 少妇激情一区二区三区 | 国产小视频在线播放 | 亚洲精品大片 | 九九热精 | zzji欧美大片 | 东凛在线观看 | 黄色同人网站 | 国产一区二区三区久久久 | 亚洲三级色 |