怎么判断某个控件是否在焦点?

xinshaw 2003-03-07 11:14:56
如果那个控件本来就是焦点,再用setfocus就会出错
...全文
319 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
matchchen 2003-05-01
  • 打赏
  • 举报
回复
对于一般控件:
if ActiveControl.hWnd=yourcontrol.hWnd then
msgbox yourcontrol.name
endif

对于没有句柄的控件,还是:
if ActiveControl.Name=yourcontrol.Name _
and ActiveControl.index=yourcontrol.index then
msgbox yourcontrol.name
endif

另外,焦点只能移到可视的,并且Enabled 属性为 False 的窗体或控件。
DekieCheng 2003-04-30
  • 打赏
  • 举报
回复
你的控件有没有被设为无效值(Enabled=false) 或者它的Visible属性被设为False了,如果是,就会出现楼主说的问题!!!
gmlwx 2003-04-30
  • 打赏
  • 举报
回复
哪个控件肯定是隐蔽了!
哪个控件肯定是隐蔽了!
哪个控件肯定是隐蔽了!
哪个控件肯定是隐蔽了!
哪个控件肯定是隐蔽了!
哪个控件肯定是隐蔽了!
visualzuo 2003-04-30
  • 打赏
  • 举报
回复
没什么不对的啊
SeeSunSet 2003-03-09
  • 打赏
  • 举报
回复
msgbox me.activecontrl.name,vbokonly,"attention"
lanseerme 2003-03-09
  • 打赏
  • 举报
回复
但是我刚试过,没出现像楼上说得那样!没有出错程序如下!:
Option Explicit

Private Sub Command1_Click()
Text1.SetFocus
Text1.SetFocus
Text1.SetFocus
Text1.SetFocus
Text1.SetFocus
End Sub

Private Sub Command2_Click()
Command1.SetFocus
End Sub
xiao_hou 2003-03-09
  • 打赏
  • 举报
回复
"如果那个控件本来就是焦点,再用setfocus就会出错"是对的,我曾在一本书上看过,经试验也确实如此. 上面几位仁兄提出的解决方案也是可行的.
litsnake1 2003-03-07
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Command1.SetFocus
End Sub

Private Sub Text1_GotFocus()
Text1.SetFocus
End Sub

没问题的,你看上面的,它本来就有焦点,但是再用SetFocus,还是没有任何问题的

如果你想知道焦点在哪个空件上面
Me.ActiveControl,就可以告诉你哪个空间有焦点了

if Me.ActiveControl.name="你想知道的空件名称" then
debug.print "你这个空件已经有焦点了"
end if
Sean918 2003-03-07
  • 打赏
  • 举报
回复
不知道

要么在每个控件的 gotfocus 事件里加个 msgbox ?
northwolves 2003-03-07
  • 打赏
  • 举报
回复
写个函数:

Private Sub Form_Click()
MsgBox ctlinfocus(Text1)
End Sub
Function ctlinfocus(ByVal ctl As Control) As Boolean
ctlinfocus = False
If Me.ActiveControl.Name = ctl.Name Then ctlinfocus = True
End Function
smalle 2003-03-07
  • 打赏
  • 举报
回复
用API函数:GetActiveWindow()得到当前焦点的控件hwnd,再列举窗体里的控件,检验其hwnd
gafield 2003-03-07
  • 打赏
  • 举报
回复
你真是没有法子说了
在控件的getfocts中记录,在lostfoctus中去掉记录不就行了
Sean918 2003-03-07
  • 打赏
  • 举报
回复

哦,这样实现就可以了  


MsgBox TypeName(Me.ActiveControl)


放在定时器里试试,应该可以的
online 2003-03-07
  • 打赏
  • 举报
回复
好像没有问题。
dingyanwei 2003-03-07
  • 打赏
  • 举报
回复
楼主的问题我怎么没有遇到,我试过了,好像没有问题。

1,451

社区成员

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

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