C/S模式开发中如何利用WebBrowser控件制作导航窗体

相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见进销存系统的同学肯定知道,在进入系统之后一般在mdi窗体中系统自动打开一个导航子窗体.将一些常见的功能以非常直观的图形展示给用户.观察市面上的此类产品,该功能基本是所有mdi窗体开发的管理系统中必备的功能窗体.下面我们就来分析一下如何在.net中实现这个功能.幸好我上次做了一个类似的系统,里面也用到了导航功能.特此奉献自己的开发经验.哈哈,光看文字是不是很累啊,可能很多同学还不太了解.来个导航窗体效果图片先.以下这个图是某个用.net开发的进销存系统中的导航截图.

是不是很爽啊?如何实现呢?现在一般有两种做法:1.通过gdi或者pictureBox等贴图+复杂编程实现.非常麻烦,速度也慢.2.通过web方式实现界面.利用代码获取web事件,实现了界面和程序分离.非常方便,而且速度快.第一种没有必要讲了,现在很少有公司会这么来做了.下面谈谈第二种,也就是本文的主题.说到在winform中加入网页,我们自然就想到了webBrowser控件.看看msdn的帮助,里面有一个重要的属性,Document(HtmlDocument类),继续查看msdn,HtmlDocument有一个重要的方法:InvokeScript,来看看msdn解释:执行在 HTML 页面中定义的动态脚本函数。^_^,看到曙光了吗?这个方法可以很方便的处理webbrowser控件中的网页js代码.因此我们可以很容易的在C#中调用js函数来控制网页.但是如何实现网页中代码调用C#的方法呢?大家可以查看msdn ComVisibleAttribute 类: 控制程序集中个别托管类型、成员或所有类型对 COM 的可访问性。

也就是说我们只需要在winform窗体中引入System.Runtime.InteropServices 命名空间.在窗体类和需要调用的方法前面加上属性声明 [ComVisible(true)]

具体代码如何实现呢?winform中方法示例为:[ComVisible(true)] public void OpenForm(string formName) { if (string.IsNullOrEmpty(formName)) return; switch (formName) { case "PurchaseOrder": Form_PurchaseOrder frm = new Form_PurchaseOrder(); frm.Show(); break; case "SaleOrder": Form_SaleOrder frm1 = new Form_SaleOrder(); frm1.Show(); break; case "Form1": Form1 frm2 = new Form1(); frm2.Show(); break; } }在js可以这样调用该方法:<input type="button" onclick="window.external.OpenForm(‘PurchaseOrder’)" value="采购订单">

是不是很简单?这里不贴出详细的实现代码,详细代码请向我索取

,三亚呀——赴一个蓝天碧海。只是微笑地固执自己的坚持,

C/S模式开发中如何利用WebBrowser控件制作导航窗体

相关文章:

你感兴趣的文章:

标签云: