当我将 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.
最佳答案
我找到了这个解决方法
type
TWinControlAccess = class(TWinControl)
end;
procedure TMainForm.CreateEmbedded(FormClass: TFormClass; Parent: TWinControl);
var
form: TForm;
begin
form := FormClass.Create(Self);
form.Align := alClient;
form.BorderIcons := [];
form.BorderStyle := bsNone;
form.Parent := Parent;
TWinControlAccess(form).ParentBackground := True; // <<<-
form.Show;
end;
关于delphi - 如何将选项卡中停靠表单的颜色设置为正确的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139928/