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小白
展开
 我来答
yfcp
推荐于2016-06-27 · 知道合伙人软件行家
yfcp
知道合伙人软件行家
采纳数: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
追问
没有效果啊
现在窗口能置顶显示,但是焦点不在Text1里,需要按下键盘的Tab键,焦点才会跑到Text1里。。。。
能不能让程序自动按一下Tab键
翎2980493052
2015-12-06 · TA获得超过549个赞
知道小有建树答主
回答量:754
采纳率:100%
帮助的人:458万
展开全部
SetFocus(HWND)
用这个api试试能不能再把窗口聚焦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式