DotNetBar控件,superTabControl多文檔界面(MDI)的風格、多Tab的創建方法


最近在做一個條碼系統的項目,第一次用dotnetbar控件,,查找資料時看到伍老師一篇文章(鏈接),但是沒有關於加載tab窗口的方法,自己摸索做了一個此類風格出來,並寫了一個通用方法,供大家參考。

風格如下:

 

 

一、使用superTabControl控件,設置其屬性,第一個屬性為顯示關閉按鈕,第二個屬性設置鋪滿父控件(如果你在使用ribbon風格的菜單欄一定不要忘記設置,否則ribbon添加自定義按鈕或最小化時可能會被遮擋或留白)

 

二、在開始添加tab時,我是手動添加tab到superTabControl中,以為點擊tab關閉時只是將此tab隱藏,打開時再顯示就行了。但實際不可行,因為關閉后此tab實際上已經被釋放掉了,無法恢復到原狀態。這里我使用的方法是講功能界面做成單獨子窗體,在點擊某功能時創建Tab,然后將子窗體加載到此Tab中。

  1、添加一個window,放好基本控件,設置窗體FormBorderStyle為none隱藏邊框和窗體標題,

 

 2、關鍵方法:設置Tab顯示。

第一個參數為tab名稱,對應功能菜單名稱,

第二個參數為子window的控件Name。 

 1         private void SetTabShow(string tabName,string sfrmName) {
 2             bool isOpen = false;
 3             foreach (SuperTabItem item in superTabCtrMain.Tabs)
 4             {
 5                 //已打開
 6                 if (item.Name == tabName) { 
 7                     superTabCtrMain.SelectedTab = item;
 8                     isOpen = true;
 9                     break;
10                 }
11             }
12             if (!isOpen) {
13                 //反射取得子窗體對象。
14                 object obj = Assembly.GetExecutingAssembly().CreateInstance("BarCodeSys.subWindows." + sfrmName, false);
15                 //需要強轉
16                 Form form = (Form)obj;
17                 //設置該子窗體不為頂級窗體,否則不能加入到別的控件中
18                 form.TopLevel = false;
19                 form.Visible = true;
20                 //布滿父控件
21                 form.Dock = DockStyle.Fill;
22                 //創建一個tab
23                 SuperTabItem item = superTabCtrMain.CreateTab(tabName);
24                 //設置顯示名和控件名
25                 item.Text = tabName;
26                 item.Name = tabName;
27                 //將子窗體添加到Tab中
28                 item.AttachedControl.Controls.Add(form);
29                 //選擇該子窗體。
30                 superTabCtrMain.SelectedTab = item;
31             }
32         }

 

三、調用實現

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM