如何在一个窗口中激活另一个窗口,然后....

BlueDog 2003-07-25 05:17:54
1、如何在一个窗口A中激活中另一个窗口B然后B失去焦点时将B unload

2、其实第一个问题不难,难的是如果是在ActiveX自定义控件中如何处理
例如我在UserControl中激活一个窗口 TreeForm
而当TreeForm失去焦点时将TreeForm unload
我发现用
TreeForm.LostFocus 将不会发生这个事件

3、我也用过 SetCapture和ReleaseCapture来处理焦点问题,
但是比较烦锁,而且问题比较多

4、实际上我是想做一个带树的Combo控件,不知道其它高手如何处理这个问题
我是在ComboBox_DropDown中激活 TreeForm
然后应该是TreeForm得到焦点,
如果用户将焦点移到其它控件或窗口,TreeForm应自动unload
可是我通过以上方法都没有处理好,或者是我的程序有问题?
请大家指正,提出思路

不知道说清楚了没有?



...全文
42 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueDog 2003-07-26
  • 打赏
  • 举报
回复
我刚才查了一下msdn
SetCapture和ReleaseCapture只对本身线程有用
当切换到其它进程时就会出错
BlueDog 2003-07-26
  • 打赏
  • 举报
回复
谢谢各位的回答,但是好象都没有用
有没有做过这种类似控件的朋友,
和我交流,我的MSN是zhenghesoft@hotmail.com
LuBingLin 2003-07-26
  • 打赏
  • 举报
回复
不好意思上面说错了。
用LostFocus可以使窗体UnLoad啊《我试了可以哦》
Private Sub Form_LostFocus()
Unload Me
End Sub

LuBingLin 2003-07-26
  • 打赏
  • 举报
回复
请使用该事件试一下:Form_Paint
pigpag 2003-07-25
  • 打赏
  • 举报
回复
如果是程序内部,试试Deactivate事件。
可能要用到API的。
sworddx 2003-07-25
  • 打赏
  • 举报
回复
LostFocus不可以。我是用ReleaseCapture和SetCapture的,不过常出一些莫名其妙的问题。
hc_z 2003-07-25
  • 打赏
  • 举报
回复
Form_LostFocus好像是激发不起来。
可不可以用控件,当LostFocus事件时调整UserControl的大小,将TreeView控件所在部分不显示出来。
BlueDog 2003-07-25
  • 打赏
  • 举报
回复
没有人知道??? 天啦!!!

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧