| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3089 人关注过本帖
标题:[求助]Webbrowser控件如何响应键盘事件?
只看楼主 加入收藏
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
 问题点数:0 回复次数:6 
[求助]Webbrowser控件如何响应键盘事件?
我在VB.net编程的时候发现webbrowser控件没有keypress等事件。

如果我希望webbrowser控件响应键盘该怎么做?
搜索更多相关主题的帖子: 控件 Webbrowser 键盘 webbrowser 
2007-10-23 19:33
qlong0728
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:272
专家分:0
注 册:2007-6-15
收藏
得分:0 
PreviewKeyDown

程序人员写程序,又拿程序换酒钱。 奔驰宝马贵者趣,公交自行程序员。 不见满街漂亮妹,哪个归得程序员。
2007-10-24 08:12
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
得分:0 
回复:(qlong0728)PreviewKeyDown

多谢多谢。

我用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编辑过]


编程是业余爱好,写了程序自己用的。
2007-10-25 08:47
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
得分:0 
回复:(qlong0728)PreviewKeyDown

我改了一下代码调试如下:

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编辑过]


编程是业余爱好,写了程序自己用的。
2007-10-25 09:34
qlong0728
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:272
专家分:0
注 册:2007-6-15
收藏
得分:0 
我在2005上测试你的代码,没有向你所说的,跳出两次啊,按A后就弹出,确认后就什么都没出了!

程序人员写程序,又拿程序换酒钱。 奔驰宝马贵者趣,公交自行程序员。 不见满街漂亮妹,哪个归得程序员。
2007-10-25 11:45
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
得分:0 
确实出现两次msgbox(i)

我刚才重新写了一遍程序面的我别的代码干扰webbrowser.一个很干净的frame左半边是一个webbrowser1,其余的什么也没有。

直接编写如上面的previewkeypress.运行,确实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了,而且,数字还会变化。

所以很奇怪,为什么没有加载网页和加载网页以后会不一样。。。。而且一般情况下网页是加载的阿。

编程是业余爱好,写了程序自己用的。
2007-10-25 16:39
momia
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-10-15
收藏
得分:0 
回复:(qlong0728)我在2005上测试你的代码,没有向你...

确实出现两次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了,而且,数字还会变化。

所以很奇怪,为什么没有加载网页和加载网页以后会不一样。。。。而且一般情况下网页是加载的阿。


编程是业余爱好,写了程序自己用的。
2007-10-25 17:14
快速回复:[求助]Webbrowser控件如何响应键盘事件?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015571 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved