VB窗口,置顶后没有输入焦点的问题
PrivateSubForm_Load()'主窗体启动OnErrorResumeNextText1.TabIndex=0'设置键盘焦点顺序(按TAB时的切换顺序),也可以...
Private Sub Form_Load() '主窗体启动
On Error Resume Next
Text1.TabIndex = 0 '设置键盘焦点顺序(按TAB时的切换顺序),也可以在右侧属性框里设置
Text2.TabIndex = 1
Text3.TabIndex = 2
Command1.TabIndex = 3
Timer1.Interval = 500 '设置时间间隔
Timer1.Enabled = True '这个是启动定时器时间
Timer1.Enabled = False '这个是关闭定时器
End Sub
Private Sub Command1_Click()
参数9 = Text1.Text
Unload Me '释放资源
End Sub
Private Sub Timer1_Timer() '定时器事件
On Error Resume Next '容错机制(出错也继续向下运行)
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) '置顶显示,不要置顶用 -2, 0, 0, 0, 0, 3 或者删除这句
Text1.SetFocus '设置焦点
End Sub
求大侠帮忙看下上面的代码
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) 加上这一句,窗口可以置顶,但会失去输入焦点
去掉这一句,可以获得输入焦点,但是窗口不会置顶
还有一个问题,弹出的对话框,在任务栏不会显示.......右侧属性框里ShowInTask已经是true了
我是vb小白 展开
On Error Resume Next
Text1.TabIndex = 0 '设置键盘焦点顺序(按TAB时的切换顺序),也可以在右侧属性框里设置
Text2.TabIndex = 1
Text3.TabIndex = 2
Command1.TabIndex = 3
Timer1.Interval = 500 '设置时间间隔
Timer1.Enabled = True '这个是启动定时器时间
Timer1.Enabled = False '这个是关闭定时器
End Sub
Private Sub Command1_Click()
参数9 = Text1.Text
Unload Me '释放资源
End Sub
Private Sub Timer1_Timer() '定时器事件
On Error Resume Next '容错机制(出错也继续向下运行)
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) '置顶显示,不要置顶用 -2, 0, 0, 0, 0, 3 或者删除这句
Text1.SetFocus '设置焦点
End Sub
求大侠帮忙看下上面的代码
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) 加上这一句,窗口可以置顶,但会失去输入焦点
去掉这一句,可以获得输入焦点,但是窗口不会置顶
还有一个问题,弹出的对话框,在任务栏不会显示.......右侧属性框里ShowInTask已经是true了
我是vb小白 展开
2个回答
推荐于2016-06-27 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
向TA提问 私信TA
知道合伙人软件行家
采纳数:1748
获赞数:5545
有多年网站建设相关工作经验。熟悉ASP、ASP.net、VB、JavaScript、HTML等语言和CSS、Ajax等相关技术。
向TA提问 私信TA
关注
展开全部
置顶操作建议不要用Timer反复置顶。如果确实需要可以间隔时间长一些。
另外,置顶后可以做一个检测。比如设置一个变量,置顶前是0,置顶后是1,如果置顶了就不操作了。
dim a as long
Private Sub Timer1_Timer() '定时器事件
On Error Resume Next '容错机制(出错也继续向下运行)
if a=0 then '如果a=0 就执行置顶代码,否则不执行
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) '置顶显示,不要置顶用 -2, 0, 0, 0, 0, 3 或者删除这句
Text1.SetFocus '设置焦点
a=1 '已经置顶了a=1,取消后写 a=0
end if
End Sub
另外,置顶后可以做一个检测。比如设置一个变量,置顶前是0,置顶后是1,如果置顶了就不操作了。
dim a as long
Private Sub Timer1_Timer() '定时器事件
On Error Resume Next '容错机制(出错也继续向下运行)
if a=0 then '如果a=0 就执行置顶代码,否则不执行
Call SetWindowPos(Me.hWND, -1, 0, 0, 0, 0, 3) '置顶显示,不要置顶用 -2, 0, 0, 0, 0, 3 或者删除这句
Text1.SetFocus '设置焦点
a=1 '已经置顶了a=1,取消后写 a=0
end if
End Sub
追问
没有效果啊
现在窗口能置顶显示,但是焦点不在Text1里,需要按下键盘的Tab键,焦点才会跑到Text1里。。。。
能不能让程序自动按一下Tab键
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询