VB.NET中使用WebBrowser如何移动无标题栏窗体?

问题描述

我想做一个简单的浏览器,使用其与自己做的网站设计页面完全吻合,因为我的网页里已经设计了标题栏了,所以在窗体设计的时候要把窗体的标题栏去掉,然后通过移动我网页里的标题栏来移动窗体,可是WebBrowser控件好像没有mousemove这样的事件啊,要怎么办?哪位高人指点一下啊,小弟所有分数奉上了.

解决方案

解决方案二:
看看有没有WndProc,有的话,重写它试试
解决方案三:
在webbrowser里头有个PreviewKeyDown事件,用它可以定义按键行为。如果定义鼠标事件有困难,你不如用方向键,或者shift+方向键,或者F1,F2,F3,F4。我用下面的方法实现了用方向键移动窗体,每次5个像素。PrivateSubWebBrowser1_PreviewKeyDown(ByValsenderAsObject,ByValeAs_System.Windows.Forms.PreviewKeyDownEventArgs)_HandlesWebBrowser1.PreviewKeyDownDimMaxRightasinteger=My.Computer.Screen.WorkingArea.Width'电脑显示器的宽度DimMaxLowasinteger=My.Computer.Screen.WorkingArea.Height'电脑显示器的高度Ife.KeyCode=Keys.LeftThen'keys.left表示左方向键Me.Left-=5IfMe.Left<0ThenMe.Left=0EndIfIfe.KeyCode=Keys.RightThen'如果不喜欢方向键可以用keys.F2Me.Left+=5IfMe.Left>MaxRightThenMe.Left=MaxRight'不要超出显示器宽度。EndIfIfe.KeyCode=Keys.UpThenMe.Top-=5IfMe.Top<0ThenMe.Top=0EndIfIfe.KeyCode=Keys.DownThenMe.Top+=5IfMe.Top>MaxLowThenMe.Top=MaxLow'不要超出显示器高度。EndIfEndSub
解决方案四:
如果你可以给form1留一点点空隙的话,可以写form1_mousedown,mousemove,mouseup事件来完成。参见http://www.hongen.com/pc/program/codtutor/code0012/code01.htm只能拖动form1的一点点缝隙,还是无法实现拖动标题栏。如果你一定要拖动标题栏,那估计只能用API函数了。vs2005的API我不晓得用,vb60的API我都是到处抄来的。http://www.vbgood.com/viewthread.php?tid=12115或许对你有帮助。有一个叫做鼠标钩子的,应该能用。
解决方案五:
我有办法了,不需要api也可以实现!在webbrowser的左上角或者任何你喜欢的位置加一个button(或者别的可以响应mouse事件的咚咚)代码如下:PublicClassForm1DimMoveScreenAsBoolean'鼠标位置DimMousXAsIntegerDimMousYAsInteger'窗体位置DimCurrXAsIntegerDimCurrYAsIntegerPrivateSubForm1_Load(ByValsenderAsObject,ByValeAsSystem.EventArgs)HandlesMe.LoadButton1.Visible=FalseEndSubPrivateSubButton1_KeyDown(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.KeyEventArgs)HandlesButton1.KeyDownIfe.KeyCode=Keys.F1ThenButton1.Visible=TrueEndIfIfe.KeyCode=Keys.F2ThenButton1.Visible=FalseEndIfEndSubPrivateSubButton1_MouseDown(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesButton1.MouseDownIfe.Button=Windows.Forms.MouseButtons.LeftThenMoveScreen=TrueMousX=e.XMousY=e.YEndIfEndSubPrivateSubButton1_MouseMove(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesButton1.MouseMoveIfMoveScreenThenCurrX=Me.Left-MousX+e.XCurrY=Me.Top-MousY+e.Y'移动窗体到新的位置Me.Left=CurrXMe.Top=CurrYEndIfEndSubPrivateSubButton1_MouseUp(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.MouseEventArgs)HandlesButton1.MouseUpMoveScreen=FalseEndSubPrivateSubWebBrowser1_PreviewKeyDown(ByValsenderAsObject,ByValeAsSystem.Windows.Forms.PreviewKeyDownEventArgs)_HandlesWebBrowser1.PreviewKeyDown,_Me.PreviewKeyDown_Button1.KeyDown'这里用了一堆handles.Ife.KeyCode=Keys.F1ThenButton1.Visible=TrueEndIfIfe.KeyCode=Keys.F2ThenButton1.Visible=FalseEndIfEndSubEndClass当你需要移动窗体的时候,按下F1,就会出现button1控件,你就可以拖动了,按下F2,button1控件就隐藏起来了。不影响webbrowser的外观。我3个控件都响应同一个KeyDown的事件,应该够用了,如果还有别的控件就再把它添加进来就可以了。注意,button1控件要在添加webbrowser控件以后再添加。----程序经过调试完全可用。这个办法已经是我能想到的最好的办法了。

时间: 2024-10-22 05:24:06

VB.NET中使用WebBrowser如何移动无标题栏窗体?的相关文章

vb.net2005中的WebBrowser 内容选择问题

问题描述 vb.net2005中的WebBrowser怎么能得到选定内容,如何实现SelectedChanged类似的事件(WB控件本身没有啊)

Android中实现全屏、无标题栏的两种办法(另附Android系统自带样式的解释)

原文:Android中实现全屏.无标题栏的两种办法(另附Android系统自带样式的解释) 在进行UI设计时,我们经常需要将屏幕设置成无标题栏或者全屏.要实现起来也非常简单,主要有两种方法:配置xml文件和编写代码设置. 1.在xml文件中进行配置 在项目的清单文件AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleB

C#实现无标题栏窗体点击任务栏图标正常最小化或还原的解决方法

对于无标题栏窗体,也就是FormBorderStyle等于System.Windows.Forms.FormBorderStyle.None的窗体,点击任务栏图标的时候,是不能象标准窗体那样最小化或还原的.把下面的代码加到你的Form实现类中,即可实现点击任务栏图标正常最小化或还原窗体.   [c-sharp] view plain copy   protected override CreateParams CreateParams   {       get       {         

C# 移动窗口 适用于有标题栏和无标题栏窗体 超级简单版

适用于有标题栏和无标题栏窗体,适用于窗体内控件,当然 Form 也不例外,只要能添加 MouseDown.MouseMove 事件,无需添加 MouseUp 事件,也无需考虑 Form 是否有标题栏. 本方法采用 Control.MousePosition,而没有采用 MouseEventArgs e 获取数据,是因为这样无需考虑窗体有无标题栏和边框的大小,也无需考虑是窗体引发事件,还是窗体内控件引发事件.     代码 // 获取窗体的屏幕坐标和鼠标光标的位置(屏幕坐标) private vo

vb.net中使用webbrowser的问题

问题描述 1.目前已经做到自动登录获取信息,但是会跳转到短信验证界面,验证后不久会再次要求验证,正常登录没有这种问题,不知道用Cookies可以解决吗?2.退而求其次手动登录保存后加载本地文件,打开后首次加载总是要点两下,不然等很久...而且本身加载也很慢,vb.net中可以直接读取本地htm文件代码不用加载页面吗?HttpWebRequest可以吗?本人比较业余,敬请各位大神指点.登录的网址是Booking一类的酒店管理后台. 解决方案 解决方案二:有验证码一般都要手动...关键是看你要上的网

在vb.net中使用webbrowser控件和mshtml以及流操作体会(vb.net内嵌IE,拆取 Web 页)

web|webbrowser控件 需求为:到某一网站抓取查询结果.环境为vb.net 从0开始,一开始具体需要用到.net里的具体什么东东都不清楚,于是就一顿瞎搜索.又是google,又是baidu,yisou......胡乱搜的内容有.net ie,拆分网页 .net,内嵌ie等等.没过多久能得知webbrowser这个控件. 其中对我有帮助比较大的文章是http://www.microsoft.com/china/msdn/Archives/workshop/scrape.asp 只是这里介

VB.NET中的webbrowser如何加载QQ快速登录

问题描述 我用VB.NET做PC端软件,遇到这样一个问题,在窗体上加载一个Webbrowser控件,打开这个网址http://xui.ptlogin2.qq.com/cgi-bin/qlogin?domain=qq.com&lang=2052&qtarget=1&jumpname=&appid=549000912&param=u1%253Dhttp%25253A%25252F%25252Fuser.qzone.qq.com&mibao_css=&s_

求助一个vb.net中webbrowser的问题

问题描述 求助一个vb.net中webbrowser的问题 我用vb.net中的webbrowser提取超链接,代码如下: Timer1.Enabled = False Dim web As WebBrowser = WebBrowser1 For Each i As HtmlElement In web.Document.GetElementsByTagName("a") url = url + i.InnerText + i.GetAttribute("href"

Android实现无标题栏全屏的方法_Android

Android中实现全屏.无标题栏的两种办法,另附Android系统自带样式的解释 实现全屏无标题栏: 1.在xml文件中进行配置 AndroidManifest.xml中,找到需要全屏或设置成无标题栏的Activity,在该Activity进行如下配置即可. 实现全屏效果: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"   实现无标题栏(但有系统自带的任务栏): android:theme="@andr