如果我希望webbrowser控件响应键盘该怎么做?
多谢多谢。
我用PreviewKeyDown试验发现这样的问题:
代码如下:
Private Sub webbrowser1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles webbrowser1.PreviewKeyDown
Select Case e.KeyCode
Case Keys.A
MsgBox("A")
Case Keys.B
MsgBox("B")
Case Keys.C
MsgBox("C")
Case Keys.D
MsgBox("D")
Case Keys.E
MsgBox("E")
Case Keys.F
MsgBox("F")
End Select
End Sub
当我按下任何一个abcdef键,msgbox都出现两次。比如按A就跳出 msgbox(A),我回车确认以后又出现一次msgbox(A)
奇怪啊。为什么会出现两次?这个函数的运行方式跟别的keypress是不是不一样?
[此贴子已经被作者于2007-10-25 8:48:46编辑过]
我改了一下代码调试如下:
Private Sub WBS1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles WBS1.PreviewKeyDown
Static Dim i = 0
If e.KeyCode = Keys.A Then
i = i + 1
MsgBox(i)
End If
End Sub
这样我按下一次A,就跳出msgbox(1),确认以后又跳出msgbox(2),在确认就不会了。
在按下一次A,就跳出msgbox(3),确认以后又跳出msgbox(4)。。。
说明我每次按下A,整个WBS1_PreviewKeyDown就会响应两次。疑惑中。。。
求解求解啊
[此贴子已经被作者于2007-10-25 9:37:11编辑过]
确实出现两次msgbox(i)
我刚才重新写了一遍程序,免得的我别的代码干扰webbrowser。
只有一个很干净的SDI, form1左半边是一个webbrowser1,其余的什么也没有。
直接编写如上面的previewkeypress.运行,按下A,确实msgbox只出现一次。
然后,我在form_load写入以下代码
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
WebBrowser1.Navigate("http://bbs.bc-cn.net/")
End Sub
再运行,就出现两次msgbox了,而且,数字还会变化。
所以很奇怪,为什么没有加载网页和加载网页以后会不一样。。。。而且一般情况下网页是加载的阿。