首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

PageControl中Form输入操作会频繁出现失去焦点,edit等输入框无法输入解决办法

2012-03-27 
PageControl中Form输入操作会频繁出现失去焦点,edit等输入框无法输入procedure TfrmMain.CreateTabSheet(

PageControl中Form输入操作会频繁出现失去焦点,edit等输入框无法输入
procedure TfrmMain.CreateTabSheet( myFormClass: TFormClass;var Reference: TForm);  
var  
MyForm : TForm;  
begin  
tabsheet := TRzTabSheet.Create(RpgcMain);  
try  
tabsheet.Caption := Reference.Caption;  
tabsheet.PageControl := RpgcMain;  
tabsheet.Name := stabsheetname;  
MyForm := myFormClass.Create(tabsheet);  
try  
MyForm.Parent := tabsheet;  
MyForm.BorderStyle := bsnone;  
MyForm.WindowState := wsmaximized;  
RpgcMain.ActivePage := tabsheet;  
MyForm.Show;  
except  
FreeAndNil(MyForm);  
end;  
except  
FreeAndNil(tabsheet);  
end;  
end;  

把窗体放入PageControl后,PageControl中Form内的快捷键处理。

procedure TForm1.FormShortCut(var Msg: TWMKey; var Handled: Boolean);
  function GetMyParentForm(Control: TControl): TCustomForm;
  begin
  Result := nil;
  while Control.Parent <> nil do
  begin
  Control := Control.Parent;
  if Control is TCustomForm then
  begin
  Result := TCustomForm(Control);
  Break
  end
  end;
  end;
var
  ParentForm : TCustomForm;
begin
  ParentForm := GetMyParentForm(ActiveControl);
  if ParentForm <> nil then
  begin
  if (ParentForm is TCustomForm) and
  (ParentForm.Parent is TTabSheet) then
  begin
  ParentForm.IsShortCut(Msg);
  end;
  end;


问题来了,PageControl中Form输入操作会频繁出现失去焦点的问题。edit等不能输入,需要关闭窗口,重新开启后才能输入。请问问题出在那里,如何解决?

[解决办法]
你在TForm1中OnShortCut触发快捷键,为什么还要找父窗体的的快捷键事件?你这样就相当于触发父窗体的快捷键,导致焦点切换了。
[解决办法]

探讨

没有,我是说现在出来的结果是那样子,我在左边放置panl,一部看不见,一部份看到!

引用:
你又自己設置“子窗体宽高设置为主窗体的宽度”? 前面不是已設置了windowState 為max嗎?

热点排行