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

简介: 原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见进销存系统的同学肯定知道,在进入系统之后一般在mdi窗体中系统自动打开一个导航子窗体.
原文: C/S模式开发中如何利用WebBrowser控件制作导航窗体

转自: CSDN

相信不少同学们都做过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# 容器
Winform控件优化之TabControl控件的美化和功能扩展
在基本的TabControl控件使用和功能之上,可以尝试对其进行美化和功能扩展,比如动态删除或添加tab、绘制图标按钮及鼠标hover时的背景变化、Tab从右向左布局的优化处理等。最重要...
2063 0
Winform控件优化之TabControl控件的美化和功能扩展
|
C# 索引 Windows
Winform控件优化之TabControl控件的使用和常用功能
TabControl是一个分页切换(tab)控件,不同的页框内可以呈现不同的内容,将主要介绍调整tab的左右侧显示、设置多行tab、禁用或删除tabpage、隐藏TabControl头部的选项卡等
3735 0
Winform控件优化之TabControl控件的使用和常用功能
|
人工智能 搜索推荐 C#
Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
结合Photoshop和WPF,共同创建一个矢量的个性化进度条。
499 0
Photoshop和WPF双剑配合,打造炫酷个性的进度条控件
|
C# 数据格式 算法
C# WPF 歌词控件(支持逐字定位描色效果)
原文:C# WPF 歌词控件(支持逐字定位描色效果) 之前做了一个模仿网易云歌词的控件,实现了加载网易云歌词并能随音乐播放进度定位歌词。今天呢将在这个控件的基础上增加逐字定位描色功能,如下图效果(QQ音乐PC)所示:   我所使用的实现方法很简单粗暴,把每句歌词每个字切开,单独显示在一个描色的控件中,然后拼成一行完整的歌词,随音乐播放进度去找相应的字进行描色。
1330 0
|
Web App开发 搜索推荐 C#
用WPF窗体打造个性化界面的图片浏览器
原文:用WPF窗体打造个性化界面的图片浏览器 本文使用WPF窗体(XAML及C#)与Win Form控件(FolderBrowserDialog)结合的方式, 演示制作了一个简易漂亮的WPF图片浏览器。
802 0
|
前端开发 C#
silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发) 这篇介绍的是3D导航,点击图标,页面360°翻转的效果!有什么不足的欢迎大家指出来。 1.新建一个usercontrol,命名为menu. 2.按照下图设置一下属性。
1220 0
|
C# C++ Windows
WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案
原文:WPF中不规则窗体与WindowsFormsHost控件的兼容问题完美解决方案          首先先得瑟一下,有关WPF中不规则窗体与WindowsFormsHost控件不兼容的问题,网上给出的解决方案不能满足所有的情况,是有特定条件的,比如  WPF中不规则窗体与WebBrowser控件的兼容问题解决办法。
1261 0
|
C# API
在WPF程序中将控件所呈现的内容保存成图像
原文:在WPF程序中将控件所呈现的内容保存成图像 有的时候,我们需要将控件所呈现的内容保存成图像保存下来,例如:InkCanvas的手写墨迹,WebBrowser中的网页等。可能有人会说,这个不就是截图嘛,找到控件的坐标和大小,调用截图API不就可以了嘛。
1085 0
|
Web App开发 数据可视化 C#

热门文章

最新文章