[解决办法] implementation uses Unit5,Unit2,Unit4; {$R *.dfm} procedure TForm1.N4Click(Sender: TObject); var ts: TRzTabSheet; Form2:TForm2; i,j:integer; begin i:=0; j:=0; if TForm2(FindComponent('form2')) = nil then begin ts:= TRzTabSheet.Create(Self); ts.PageControl := RzPageControl1; Form2 := TForm2.Create(Self); ts.Caption:='form2'; Form2.Parent := ts; Form2.Align := alClient; Form2.BorderStyle := bsNone; Form2.Show; Rzpagecontrol1.ActivePage:=ts; end else begin for i:=0 to rzpagecontrol1.PageCount -1 do begin if rzpagecontrol1.Pages.Caption ='form2' then begin j:=i; break; end; end; RzPageControl1.ActivePage :=RzPageControl1.Pages[j]; end; end; procedure TForm1.N3Click(Sender: TObject); var ts: TRzTabSheet; Form4:TForm4; i,j:integer; begin i:=0; j:=0; if TForm4(FindComponent('form4')) = nil then begin ts:= TRzTabSheet.Create(Self); ts.PageControl := RzPageControl1; Form4 := TForm4.Create(Self); ts.Caption:='form4'; Form4.Parent := ts; Form4.Align := alClient; Form4.BorderStyle := bsNone; Form4.Show; Rzpagecontrol1.ActivePage:=ts; end else begin for i:=0 to rzpagecontrol1.PageCount -1 do begin if rzpagecontrol1.Pages.Caption ='form4' then begin j:=i; break; end; end; RzPageControl1.ActivePage :=RzPageControl1.Pages[j]; end; end; procedure TForm1.RzPageControl1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); var index:integer; begin if (Button = mbLeft) and (ssDouble in Shift) then begin Index := RzPageControl1.TabAtPos (X, Y); if rzpagecontrol1.PageCount >1 then begin if index<rzpagecontrol1.PageCount-1 then begin RzPageControl1.Pages[Index].Free; RzPageControl1.ActivePage :=RzPageControl1.Pages[index]; end else begin RzPageControl1.Pages[Index].Free; RzPageControl1.ActivePage :=RzPageControl1.Pages[index-1]; end;