如何使一个控件发生LostFocus事件

Lin2000y 2003-05-17 10:42:52
假如在窗体上有两个控件,其中一个会触发lostfocus事件,但是当点击窗体时并不触发lostfocus事件,点击另外一个控件却可以发生了。为什么呢?请指教
...全文
238 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
能不能通过API来实现呢?例如如果鼠标点击的范围不是A1那就使其可见性的改变了。
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
但是我又发现了一个这样的问题了,就是我窗体上有很多其他的容器控件嘛,为什么我点击容器控件也不行呀。如果像你这样说的话,我不是要每个容器控件都要做一个click事件了。
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
其实A1是一个日期的控件,如果我每点击一次不就使控件都发生一次可见性的改变了。可是日期控件一般都不会是说点击一次的嘛。真的没办法了吗?。
huangjianyou 2003-05-17
  • 打赏
  • 举报
回复
很简单,在窗体上加一个控件,如Text2,然后代码如下就行了:

Private Sub Form_Click()
Text2.Visible = True
Text2.SetFocus
Text2.Visible = False
End Sub

Private Sub Text1_LostFocus()
'想做你做的事
End Sub

以上代码在VB6测试过。
czjw 2003-05-17
  • 打赏
  • 举报
回复
其实你可以用一个按钮或直接用控件al的Click事件,加上这样代码;
if a1.visiable = true then
a1.visiable = false
else
a1.visiable = true
end if
czjw 2003-05-17
  • 打赏
  • 举报
回复
然后 repl 任何
czjw 2003-05-17
  • 打赏
  • 举报
回复
在窗体上点击form是没有办法失去然后控件焦点的。思考中……
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
实现某个控件a1的visiable属性的更改,无论是点击form或是其他控件,如果a1的visiable为true的话就把他改变为false
czjw 2003-05-17
  • 打赏
  • 举报
回复
这个我知道,但是为什么我想知道这个事件是要怎样才能在点击窗体时也会发生。我希望的效果是在控件外部某一处或者是在某一控件上只有有鼠标点击这个动作都会发生LostFocus这个事件,就好像现在我点击窗体时就没反应.请指教!
-----------------------------
你的这段话象绕口令一样,把我绕糊涂了,你能把问题说细点吗?具体的目的。
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
你说的是窗体的gotfocus吧,但是这样的话我想没必要吧,我在窗体上点击鼠标了也是应该会发生当前控件的lostfocus事件呀。我想说的是我所点击的不是另一个控件哦,而是form呀,我点击了form,但是他就是不发生这个事件.QQ:51037225 请指教
lwzlemon 2003-05-17
  • 打赏
  • 举报
回复
当你点击窗体时,应该触发的是gotfocus才对,点击别外一个控件,当然原来的控件就失去了focus了。我就是这样认为的
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
这个我知道,但是为什么我想知道这个事件是要怎样才能在点击窗体时也会发生。我希望的效果是在控件外部某一处或者是在某一控件上只有有鼠标点击这个动作都会发生LostFocus这个事件,就好像现在我点击窗体时就没反应.请指教!
czjw 2003-05-17
  • 打赏
  • 举报
回复
对不起错了,应该是Got
lostfocus是控件失去焦点时发生的事件;
gotfocus才是获得焦点时发生的事件。
czjw 2003-05-17
  • 打赏
  • 举报
回复
lostfocus是控件失去焦点时发生的事件;
setfocus是获得焦点时发生的事件。
Muzhu 2003-05-17
  • 打赏
  • 举报
回复
你在窗体上放置一个完全无用的可以获得焦点的控件。比如TEXT1。代码如下:
Private Sub Form_Click()
'使其他控件失去焦点。
Text1.SetFocus
End Sub

Private Sub Form_Load()
Text1.Move -1500, -1500
End Sub
Lin2000y 2003-05-17
  • 打赏
  • 举报
回复
那其他的容器怎么办呢?每个容器都一定是要写一段累似的代码吗?
shmilu 2003-05-17
  • 打赏
  • 举报
回复
Private Sub Form_Click()
Text1.Visible = False
Text1.Visible = True
Text1.SetFocus
End Sub

Private Sub Text1_LostFocus()
MsgBox "lostfocus"
End Sub
aspvbjava 2003-05-17
  • 打赏
  • 举报
回复
设置一个boolean变量,当控件获得焦点的时候为true,失去为false

当单击form的时候检查boolean,当为true的时候,执行你要的操作,然后变量设置成false

7,785

社区成员

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

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