- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
winform窗体中嵌入网页(DHTML代码和winfrom应用程序交互)
winform窗体中嵌入网页(DHTML代码和winfrom应用程序交互)Posted on 2009-08-08 22:44 Charles Chen阅读(633) 评论(0) ?编辑收藏网摘所属分类: RFID(Radio Frequency Identification), JAVASCRIPT, DHTML?????在开发RFID项目中,看到同事在winform中加入网页。界面用Css和JavaScript做出来的效果很不错,比直接用winform做出来的效果好得多。更何况winform在页面表现上没有像网页那样用css和javascript控制方便。(Winform项目开发心得).??? 经查看原来是在winform中用了System.Windows.Forms.WebBrowser控件来嵌入网页。通过网络上寻找,原来WebBrowser的功能主要是:可以使用WebBrowser控件向Windows窗体客户端应用程序添加现有的动态的HTML(DHTML)应用程序。在投入大量的开发时间创建基于 DHTML 的控件,并希望利用丰富的Windows 窗体用户界面功能而无需重写现有的代码时,该控件十分有用。????? 使用WebBrowser控件,可以通过ObjectForScripting和 Document 属性在客户端应用程序代码和网页脚本代码之间实现双向通信。此外,可以对WebBrowser控件进行配置,使 Web 控件可以与应用程序窗体上的其他控件进行无缝整合,从而隐藏其 DHTML 实现。若要使控件无缝整合,请对所显示页的格式进行设置,使其背景颜色和视觉样式与窗体的其余部分匹配,然后使用AllowWebBrowserDrop、IsWebBrowserContextMenuEnabled和WebBrowserShortcutsEnabled属性禁用标准浏览器功能。webBrowser1.AllowWebBrowserDrop?=?false;//将?WebBrowser?控件的?AllowWebBrowserDrop?属性设置为?false,以防止?WebBrowser?控件打开拖放到其上的文件。webBrowser1.IsWebBrowserContextMenuEnabled?=?false;//将该控件的?IsWebBrowserContextMenuEnabled?属性设置为?false,以防止?WebBrowser?控件在用户右击它时显示其快捷菜单.webBrowser1.WebBrowserShortcutsEnabled?=?false;//将该控件的?WebBrowserShortcutsEnabled?属性设置为?false,以防止?WebBrowser?控件响应快捷键。webBrowser1.ScriptErrorsSuppressed=true;//将该控件的ScriptErrorsSuppressed属性设置为true,以防止WebBrowser控件显示脚本代码问题的错误信息。????? WebBrowser不单单只做一个浏览器的功能吧,既然是winform程序,那么就牵涉到网页的程序(主要是javascript)和winform本身的程序怎样交互呢?一些Javascript无法实现的功能,可以通过javsscript调用Winform里的方法去完成。1.在窗体的构造函数或者Load事件处理程序中设置ObjectForScripting属性:下面代码将窗体类自身用于脚本对象。(组件对象模型(COM)必须能够访问脚本对象,若要使窗体对 COM 可见,请将ComVisibleAttribute属性添加到窗体类中) webBrowser1.ObjectForScripting?=?this;在窗体类自身设置Attribute [PermissionSet(SecurityAction.Demand,?Name=FullTrust)][System.Runtime.InteropServices.ComVisibleAttribute(true)]public?class?Form1?:?Form{}2.在应用程序中实现脚本代码将要调用的winform的公共属性和方法。public?string?InvokeFormMethod(string?message){???MessageBox.Show(message,Client?Code)???return Charles2008}3.在脚本代码中使用window.external对象访问指定对象的公共属性和方法。input?type=button?text=调用winform中的方法?value=测试调用winform的方法?onclick=ale
文档评论(0)