當我將TForm
停靠在TTabSheet
上時,窗體的背景顏色爲灰色。另一方面,標籤頁有白色背景色。如何將選項卡中的停靠窗體的顏色設置爲正確的顏色?
當主題被禁用時(例如經典的Windows主題)它會變得更加複雜。
使用當前代碼灰色窗體有一個相當醜陋的白色邊框。
那麼如何將窗體背景顏色設置爲選項卡表背景顏色?如果這不起作用:如何將選項卡表背景顏色設置爲表單背景顏色?
它應該與啓用運行時主題和運行時主題禁用。
program Project1;
uses
Graphics,
Controls,
Forms,
ComCtrls;
{$R *.res}
var
Main : TForm;
Sub : TForm;
PageControl : TPageControl;
TabSheet : TTabSheet;
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm, Main);
Application.CreateForm(TForm, Sub);
PageControl := TPageControl.Create(Main);
PageControl.Parent := Main;
PageControl.Align := alClient;
TabSheet := TTabSheet.Create(Main);
TabSheet.PageControl := PageControl;
Sub.Dock(TabSheet, TabSheet.ClientRect);
Sub.Align := alClient;
Sub.Show;
// Sub.Color := clWhite; // TabSheet.Color;
Application.Run;
end.
我建議你使用JvDocking在JVCL,而不是因爲它處理這麼多比本地CommonControls TTabSheet +'Form.Dock/ManualDock'永遠不會處理它更好。如果你不希望用戶在運行時拖放對接和所有的東西,那麼我仍然建議你放棄TPageControl,並至少使用一個非MS-通用控件的Tab/page控件。這比你想象的要糟糕得多。 Win7/64bit上的行爲比Win7/32bit上的行爲不同,這要歸功於Win7/64上的MSCOMMONCONTROLS dll中的錯誤。 – 2012-04-13 13:48:07