C#裡面,GUI預設的TabControl組件只提供少少的樣式可以選擇。如果想要有Chrome或是IE8樣子的TabControl,就必須自己覆寫TabControl。由於覆寫太麻煩了,在Code Project上剛好有人提供了這些現成的方式。
http://www.codeproject.com/KB/tabs/NewCustomTabControl.aspx
建議下載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);
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的畫面就不會爛掉了。
沒有留言:
張貼留言