2011年1月30日 星期日

Painting Your Own Tabs - Second Edition in C#

C#裡面,GUI預設的TabControl組件只提供少少的樣式可以選擇。如果想要有Chrome或是IE8樣子的TabControl,就必須自己覆寫TabControl。由於覆寫太麻煩了,在Code Project上剛好有人提供了這些現成的方式。

http://www.codeproject.com/KB/tabs/NewCustomTabControl.aspx

套用起來就可以像下面這樣。當然X按鈕也是它內建的。
image

建議下載DLL檔案並且把它放在References。並在自己設計GUI的ToolBox中加入這個組件。

不過我在使用拖拉GUI上遇到了困難。只要畫面上一擺放它的TabControl,整個畫面就會變得很不正常,甚至設計GUI的畫面不能使用。在執行作者提供的DEMO project也是會有這種情況發生。

後來沒有找到解法,只有迂迴的方法,那就是不要在自己的ToolBox上新增。一切用手工打造程式碼。

this.tabControl1 = new CustomTabControl();
this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tabControl1.Location = new System.Drawing.Point(0, 0);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
this.tabControl1.Size = new System.Drawing.Size(708, 377);
this.tabControl1.DisplayStyle = System.Windows.Forms.TabStyle.Chrome;
this.tabControl1.DisplayStyleProvider.ShowTabCloser = true;
this.tabControl1.TabIndex = 0;

this.panel2.Controls.Add(this.tabControl1);

自己手動加入panel2中。這樣設計GUI的畫面就不會爛掉了。

沒有留言: