以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教登陆窗口的焦点问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=84703)

--  作者:hbhb
--  发布时间:2016/5/8 11:14:00
--  请教登陆窗口的焦点问题
大师:请问为何自定义的登陆窗口显示后,鼠标焦点在TextBox1控件中。但不能输入,非要再用鼠标点击一下才行?
窗口打开后的代码如下:
e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
e.Form.AcceptButton = "Button1"   \' -----按回车键的按钮
e.Form.BaseForm.ShowInTaskBar = True  \'-----在任务栏显示此窗口---
e.Form.Select()
e.Form.Controls("TextBox1").Enabled = True
e.Form.Controls("TextBox1").Select()
e.Form.Controls("TextBox1").BaseControl.Focus()

--  作者:大红袍
--  发布时间:2016/5/8 15:31:00
--  

Timertick事件

 

If ShowAppWindow(e.Form.Text, 1) = True Then

    e.Form.BaseForm.TopMost = True

    e.Form.TimerEnabled = False

End If

 


--  作者:hbhb
--  发布时间:2016/5/8 18:36:00
--  
还是不行。我来重新表述一下:
1、双击打开项目文件夹
2、双击项目文件打开项目运行
3、显示了自定义的登陆窗口,光标在该窗口中的TextBox1显示。
4、用键盘输入"a"时,光标就选定项目文件夹中的以”a“开头的文件夹,不能再TextBox1中输入字符。非要用鼠标在此点击一下,才能输入字符。我希望不用光标在此处点击,用键盘输入"a"时,就能输入。

--  作者:Hyphen
--  发布时间:2016/5/9 8:55:00
--  
试试
e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
e.Form.AcceptButton = "Button1"   \' -----按回车键的按钮
e.Form.BaseForm.ShowInTaskBar = True  \'-----在任务栏显示此窗口---
e.Form.BaseForm.TopMost = True
If e.Form.BaseForm.CanFocus Then e.Form.BaseForm.Focus()
e.Form.Controls("TextBox1").Enabled = True
e.Form.Controls("TextBox1").Select()

--  作者:大红袍
--  发布时间:2016/5/9 9:39:00
--  

 不,可,能,自己看2楼,timertick事件你要开启啊

 

http://www.foxtable.com/help/topics/1301.htm

 


--  作者:hbhb
--  发布时间:2016/5/10 19:55:00
--  
就可能,一打开窗口就开启了。
--  作者:大红袍
--  发布时间:2016/5/10 20:56:00
--  

你的登陆窗口改一个特殊的标题名字,然后加入msgbox测试是否执行了代码啊

 

msgbox(date.now)

If ShowAppWindow("登陆窗口标题", 1) = True Then

    e.Form.BaseForm.TopMost = True

    e.Form.TimerEnabled = False

End If

 

实在不行,请做一个例子发上来测试。


--  作者:hbhb
--  发布时间:2016/5/10 21:35:00
--  
我的窗口打开后本来就有计划在执行,文字移动。这个问题去年就问了,您帮人家搞了,说我的问题简单,不复杂。但一直未解决。
窗口afterload事件代码为:
e.Form.BaseForm.TopMost = True
e.Form.TimerInterval = 1  \'设定定时器周期为10/1000=0.01秒
e.Form.TimerEnabled = True  \' 起动定时器
Dim lab3 As WinForm.Label = e.Form.Controls("Label3")
Dim lab4 As WinForm.Label = e.Form.Controls("Label4")
Dim lab5 As WinForm.Label = e.Form.Controls("Label5")
lab3.Left = -lab3.Width
lab4.Left = -lab4.Width
lab5.Left = lab5.Width
lab3.Text = "系统"
lab4.Text = "financial statement"
If UKey.Start() Then
    Dim khs As String = UKey.ReadStr(0,50)
    lab5.Text = khs
End If

If loginMode = True Then
    e.Form.Text = "用户登录"
    e.Form.Controls("Button1").Text = "登录"
    e.Form.Controls("Button2").Text = "退出"
Else
    e.Form.Text = "切换用户"
    e.Form.Controls("Button1").Text = "切换"
    e.Form.Controls("Button2").Text = "取消"
End If

\'e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
\'e.Form.AcceptButton = "Button1"   \' -----按回车键的按钮
\'e.Form.BaseForm.ShowInTaskBar = True  \'-----在任务栏显示此窗口---
\'e.Form.Select()
\'e.Form.Controls("TextBox1").Enabled = True
\'e.Form.Controls("TextBox1").Select()
\'e.Form.Controls("TextBox1").BaseControl.Focus()
\'

e.Form.BaseForm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
e.Form.AcceptButton = "Button1"   \' -----按回车键的按钮
e.Form.BaseForm.ShowInTaskBar = True  \'-----在任务栏显示此窗口---
e.Form.BaseForm.TopMost = True
If e.Form.BaseForm.CanFocus Then e.Form.BaseForm.Focus()
e.Form.Controls("TextBox1").Enabled = True
e.Form.Controls("TextBox1").Select()


timetick事件代码为:
Dim lab3 As WinForm.Label = e.Form.Controls("label3")
Dim lab4 As WinForm.Label = e.Form.Controls("label4")
Dim lab5 As WinForm.Label = e.Form.Controls("label5")
Dim n1 As Boolean = False
Dim n2 As Boolean = False
Dim n3 As Boolean = False
If lab3.left > (e.Form.width - lab3.Width)/2 Then
    lab3.left = (e.Form.width - lab3.Width)/2
    n1 = True
Else
    lab3.left += 1
End If

If lab4.left > (e.Form.width - lab4.Width)/2 Then
    
    lab4.left = (e.Form.width - lab4.Width)/2
    n2 = True
Else
    lab4.left += 1
End If

If lab5.left < (e.Form.width - lab5.Width)/2  Then
    lab5.left = (e.Form.width - lab5.Width)/2
    n3 = True
Else
    lab5.left -= 1
End If

If n1 = True And n2 = True And n3 = True  Then
e.Form.TimerEnabled = False


劳驾帮忙解决,光标在窗口的TextBox1控件中闪烁,不用鼠标点击此控件,就不能输入字符的原因???????


--  作者:大红袍
--  发布时间:2016/5/10 21:37:00
--  
叫你用7楼代码测试。不会做就上传实例啊
--  作者:大红袍
--  发布时间:2016/5/10 21:38:00
--  
无语。