用winform的WebBrowser嵌入网页,如何在点击网页中的关闭,最小化,最大化,来关闭或最大最小化winform ?

kucao 2017-03-22 08:50:07
为了隐去B/S模式中的网页地址栏,想用 winform的WebBrowser嵌入网页,然后把winform做成无边框的,在网页中实现winform的关闭,最小化,最大化的操作。
请问该如何实现? 非常感谢
...全文
393 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
kucao 2017-04-01
  • 打赏
  • 举报
回复
引用 7 楼 foren_whb 的回复:
[quote=引用 4 楼 kucao 的回复:] [quote=引用 2 楼 sp1234 的回复:] 随便给你搜一个文章:http://www.cnblogs.com/nygfcn1234/p/3270531.html 不过其实纯 web 更好。你可以使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯(并不需要走外网),这个小程序驱动本地硬件。如果没有本地硬件驱动需求,那么纯网页就足够了。
非常感谢解答, 我其实做了一个点餐系统,收银PC算是ASP.NET的server, pad端点餐需要链接这个 ASP.NET的收银PC,但是PC端的这个ASP.NET收银程序,我想要把浏览器的地址栏之类的隐藏了,让他像个全屏的B/S软件 请问您上面说的“使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯” 是什么? 能提示一下吗? 我好知道往哪个方向去找资料? 如果有现成的资料和代码就更好了。 非常感谢。[/quote] 还有更简单更常规的做法,你居然没听说过???? 不知道现在流行混合前端吗? 用通用工具开发一个移动端的内嵌浏览器的壳子,然后把页面做成响应式的,这样就可以直接打开你的网页了,也不会显示url,页面要素随便你控制 你用WebBrowser实现,还要受各种环境限制,用这个方法兼容所有移动平台,多好,手机也能用[/quote] 请问,您说的“通用工具” 是什么工具? 能说下名字吗?
kucao 2017-04-01
  • 打赏
  • 举报
回复
引用 9 楼 sp1234 的回复:
[quote=引用 4 楼 kucao 的回复:] 请问您上面说的“使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯” 是什么? 能提示一下吗? 我好知道往哪个方向去找资料? 如果有现成的资料和代码就更好了。
我实际上说了两个方面的东西。 一个是服务要独立化,预先设计清楚你的网络架构。那么除了业务数据服务以外,你的打印机、钱箱驱动如果也是一个独立部署网络服务(而不是本地窗体程序承载的),直接通过网页去找到服务进行通讯,那就比较容易做“大”了。 第二个方面,在选择“前端”编程开发的“核心技术”方面,比如说你可以用现代的 web 方式的应用来开发点餐系统、信用卡理财系统、休闲游戏、物流信息推送、企业办公、政府公共服务,等等系统的前端都是没有问题的,而且可以达到传统的 cs 桌面软件、手机 native 软件完全一样的流畅性,只要能解决用户打开软件时“前30秒钟”内的感觉问题(千万不要沿袭10年前的web应用程序那种糟糕的用户体验)。用户每一次打开软件加载时不会看到瞬间0.5秒钟“白屏”现象,用户访问几公里以外的连锁店总部或者千公里以外的Saas服务器数据的操作必须跟手机本地操作一样流畅,页面(实际上页面内部的<div>切换可见性)刷新没有卡顿感觉。那么注重这种体验,所做出来的网页应用,也就比较容易做大了。[/quote] 非常非常感谢,您上面说的这些,正是我想要实现的,谢谢您给的思路和指导,对我非常有用!谢谢!
bwangel 2017-04-01
  • 打赏
  • 举报
回复
没记错的话,webbrowser内核还是ie7.0的。不支持很多H5的特性。 用wpf的方式比较好一点。
丰云 2017-04-01
  • 打赏
  • 举报
回复
vs 2015 自带的移动开发平台就可以了。。。唉。。。
  • 打赏
  • 举报
回复
引用 4 楼 kucao 的回复:
请问您上面说的“使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯” 是什么? 能提示一下吗? 我好知道往哪个方向去找资料? 如果有现成的资料和代码就更好了。
我实际上说了两个方面的东西。 一个是服务要独立化,预先设计清楚你的网络架构。那么除了业务数据服务以外,你的打印机、钱箱驱动如果也是一个独立部署网络服务(而不是本地窗体程序承载的),直接通过网页去找到服务进行通讯,那就比较容易做“大”了。 第二个方面,在选择“前端”编程开发的“核心技术”方面,比如说你可以用现代的 web 方式的应用来开发点餐系统、信用卡理财系统、休闲游戏、物流信息推送、企业办公、政府公共服务,等等系统的前端都是没有问题的,而且可以达到传统的 cs 桌面软件、手机 native 软件完全一样的流畅性,只要能解决用户打开软件时“前30秒钟”内的感觉问题(千万不要沿袭10年前的web应用程序那种糟糕的用户体验)。用户每一次打开软件加载时不会看到瞬间0.5秒钟“白屏”现象,用户访问几公里以外的连锁店总部或者千公里以外的Saas服务器数据的操作必须跟手机本地操作一样流畅,页面(实际上页面内部的<div>切换可见性)刷新没有卡顿感觉。那么注重这种体验,所做出来的网页应用,也就比较容易做大了。
  • 打赏
  • 举报
回复
其实,作为收银、记账、库存管理等等功能的页面完全可以是纯粹静态的 html 文件(如果你使用 asp.net 来产生页面也没有关系,反正你知道只是相当于“一次性地产生页面,以后再也不刷新”就行了),因此可以随便部署在任何地方。 当这个页面加载完了之后,它就通过 websocket 而跟企业的业务服务连起来了。此时这个业务服务其实可以另外部署在任何地方,根本不需要跟下载页面的服务器在一起(这一点非常非常重要)。页面是纯粹富客户端的,前端页面的表现并不需要 asp.net 编程技术,而是纯粹靠 web 前端技术。 进一步地,页面要访问店内的 pos 收银小票打印机、厨房打印机、发票打印机等等外设,也可以通过websocket 方式来访问在打印机工作站上运行的一个简单的控制台程序或者win服务程序。 这样的一个 web 应用才能匹敌传统的桌面cs、手机native程序的用户体验。否则用传统 asp.net 是做不好收银软件前端的。
丰云 2017-03-23
  • 打赏
  • 举报
回复
引用 4 楼 kucao 的回复:
[quote=引用 2 楼 sp1234 的回复:] 随便给你搜一个文章:http://www.cnblogs.com/nygfcn1234/p/3270531.html 不过其实纯 web 更好。你可以使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯(并不需要走外网),这个小程序驱动本地硬件。如果没有本地硬件驱动需求,那么纯网页就足够了。
非常感谢解答, 我其实做了一个点餐系统,收银PC算是ASP.NET的server, pad端点餐需要链接这个 ASP.NET的收银PC,但是PC端的这个ASP.NET收银程序,我想要把浏览器的地址栏之类的隐藏了,让他像个全屏的B/S软件 请问您上面说的“使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯” 是什么? 能提示一下吗? 我好知道往哪个方向去找资料? 如果有现成的资料和代码就更好了。 非常感谢。[/quote] 还有更简单更常规的做法,你居然没听说过???? 不知道现在流行混合前端吗? 用通用工具开发一个移动端的内嵌浏览器的壳子,然后把页面做成响应式的,这样就可以直接打开你的网页了,也不会显示url,页面要素随便你控制 你用WebBrowser实现,还要受各种环境限制,用这个方法兼容所有移动平台,多好,手机也能用
  • 打赏
  • 举报
回复
在这个互联网时代,软件客户端的核心就是“网络客户端”。而你说的“收银pc作为asp.net 服务器”,我担心就就是,你的 web 应用可能是、或许是传统 asp.net 那种非常缓慢、操作体验不好、一遍遍刷页面的,因此不敢把服务放到外网上。 我们的系统通常要求把服务器放到互联网,例如在四川某地方放10台服务器,然后全国各地的终端都去选择这10台服务器中测试速度最快的一台进行长连接,然后通过 websocket 方式跟服务器进行通讯。服务器是要处理业务服务的,例如记账服务、商品管理、社交方面的管理,等等。 但是你要理解的、我所担心的是,现在的 html5 规范的网页,其实是支持本地缓存的。也就是说当用户打开网站时即使脱机(连不上网)其实界面也是一下子就刷新出来了,然后当服务器页面确实改变时,界面会自动跟服务器的 html 文件同步。实际上 html5 时代的网页都是为了用户体验而设计的!许多asp.net 程序员还是15年前书本上写的那点 html 知识,不习惯现在的 web 前端思维方式。 实际上从上面这个web 应用程序页面缓存的 html5 规范例子,我想说明的是,web应用程序的整个框架都倾向于富客户端的,要求跟传统的 cs 客户端一样、跟传统的手机 native 客户端一样,而不是在用户操作时一遍遍刷新网页的。在用户操作时其实是从不刷新页面的,是一个静态 html 页面从不刷新的。这样才能应付熟练操作员的快速操作。 那么我所担心的是,一个 asp.net 程序员会把像 pos 客户端这样的页面,做成像过去的 asp.net 传统页面那样的用户体验,那就太糟糕了。
  • 打赏
  • 举报
回复
如果你确定是一个小系统,你确定你的收银pc 就是服务器(我个人认为这个设计格局最小),那么用 webbrowser 封装其实不错。在网页是可以直接同当前 winform 下承载 webbrowser 的窗口里的 c# 过程的,通过传送数据可以支持本地小票打印、成本核算、簿记、开钱箱,这些操作都适合用 c# 实现。 我说的是,假设你开发一个大的网络,考虑至少1000人并发使用,容易部署和和运营,此时成本核算、簿记都以一种 Saas 运营模式而设计,那么就适合发布一个独立的“驱动”小程序使得设备,作为更加通用的一个小平台,专注于“小票打印、开钱箱”等设备驱动。 这个小程序可以websocket服务形式(使用Fleck、signalr 之类的来实现)。这个时候,这个独立的设备驱动(控制台或者win服务程序)其实可以部署在互联网或者局域网或者你的收银pc本地任何地方,只要在网页能够得到配置信息,网页即可直接把相关数据指令发给这个服务,然后服务驱动它本地的打印机、钱箱。 与 ObjectForScripting 模式相比,这显然是多了一层 websocket 服务层,通过多出来一层,使得收银设备硬件被独立封装了。例如一个点餐系统场景当中,有15个人拿着平板电脑通过无线方式进行操作,在柜台有一台打印机,那么其实这就相当于至少15个平板、手机、pc机对应一个pos打印机。而并不是一个pc 机对应一个pos打印机。所以这是假设你需要开发一个与最初的理念完全不同的新型的餐饮系统架构,你从一开始就确定网络架构是不一样的,所以放选择放弃 ObjectForScripting 方式。
kucao 2017-03-22
  • 打赏
  • 举报
回复
引用 2 楼 sp1234 的回复:
随便给你搜一个文章:http://www.cnblogs.com/nygfcn1234/p/3270531.html 不过其实纯 web 更好。你可以使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯(并不需要走外网),这个小程序驱动本地硬件。如果没有本地硬件驱动需求,那么纯网页就足够了。
非常感谢解答, 我其实做了一个点餐系统,收银PC算是ASP.NET的server, pad端点餐需要链接这个 ASP.NET的收银PC,但是PC端的这个ASP.NET收银程序,我想要把浏览器的地址栏之类的隐藏了,让他像个全屏的B/S软件 请问您上面说的“使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯” 是什么? 能提示一下吗? 我好知道往哪个方向去找资料? 如果有现成的资料和代码就更好了。 非常感谢。
  • 打赏
  • 举报
回复
你可以以注意 ObjectForScripting,也就是说 jaavscript 可以直接调用 c# 方法,并且传递参数。 从而实现“互操作”,而不仅仅是 c# 程序调用 jaavscript。
  • 打赏
  • 举报
回复
随便给你搜一个文章:http://www.cnblogs.com/nygfcn1234/p/3270531.html 不过其实纯 web 更好。你可以使用一个无界面的小程序(控制台或者win服务)在本地跟网页进行通讯(并不需要走外网),这个小程序驱动本地硬件。如果没有本地硬件驱动需求,那么纯网页就足够了。
Poopaye 2017-03-22
  • 打赏
  • 举报
回复
这真是没事找事啊。可以在程序里实现个HttpListener,然后用特定的链接去触发你想要的功能。

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧