关于 PageControl 的问题....(100)

  • 主题发起人 主题发起人 dfoversky
  • 开始时间 开始时间
D

dfoversky

Unregistered / Unconfirmed
GUEST, unregistred user!
举例:PageControl1 有3个页: TabSheet1,TabSheet2TabSheet1里有 Edit1,焦点在Edit1时。如何控制点击 TabSheet2 页时,Edit1 的退出事件(OnExit)不执行。最好在 PageControl1 里编写代码。我想把窗体镶嵌到TabSheet里。但是来回切换TabSheet时,总执行Edit的OnExit事件。而且切换回去后原来的焦点就不在Edit上了。焦点落到点击TabSheet上了。能否用代码控制或者有其它类型控件?
 
不知道,不过这没什么意义啊!
 
关闭此事件就可以了.1.当TabSheet1处于非活动状态时(失去焦点),关闭Edit1的OnExit事件,如下:Edit1.OnExit := nil;2.当TabSheet1处于活动状态时(得到焦点),打开Edit1的OnExit事件,如下:Edit1.OnExit := Edit1Exit;
 
如果对我没用,我就不在这里提出问题了。SnakeWu那个方案只是具体的应用方案,可以倒是可以。不过我想把目前工程里的窗体,镶嵌到Tabsheet里。但是有很多带OnExit事件的。这样改起来挺麻烦。能不能有类似PageControl的控件,点击页切换时,跟点击SpeedButton似的。原来控件的OnExit 就不执行,这样调整PageControl 就行了。
 
判断自己有没有parent嘛,有则不运行代码.
 
我觉得是不是你的程序逻辑调整一下呢
 
只想调整一下 pagecontrol 就能实现,其它单元的退出事件 不用改。
 
可以考虑一下frame方案来做你的方法思路好像有问题
 
这很好做啊,你就判断如果是转到那个包含Edit1的pagecontrol页上,就把焦点定在Edit1上啊例如if pagecontorl.ActivePageIndex=1 then Edit1.setfocus.
 
应当用Frame 的要截获鼠标按下的消息,用鼠标Hook, (并非当TabSheet1处于非活动状态时(失去焦点),关闭Edit1的OnExit事件) 将 onExit := nil
 
后退
顶部