如何在网页中打开Windows窗体控件?

我正在开发一个网站以及Windows应用程序,我将使用相同的网页窗体应用程序以及网站。

所以我想在点击网页上的链接后调用windows窗体控件。 我想将窗体控件显示为弹出窗体。

这该怎么做? 或者提供与此问题相关的一些文档。

假设您的意思是在WinForms应用程序中托管WebBrowser类的实例,您可以为其ObjectForScripting属性提供一个对象。 它提供了一种调用来触发WinForms代码的方法。 例如:

 public partial class MyWindowsFormsForm() { public MyWindowsFormsForm() { this.WebBrowserControl.ObjectForScripting = this; } public void DoSomething() { MyOtherForm f = new MyOtherForm(); f.Show(); } } 

然后,在您的页面中:

   

有一个明显的警告,你需要在你的网页中检查以确保window.external.DoSomething实际存在,所以你的onclick (在这个例子中)可能会调用一个调用WinForms的帮助方法,或者在页面未在您的应用程序中托管的情况下执行任何操作。

我觉得你很困惑 – 或者我们是。

“我有网页,我为网络应用程序设计,我打算在网页浏览器控件中打开相同的网页,这将放在窗体应用程序的forms之一。如果我打开有forms的表格我的网站页面,我点击了网页上的链接,那时它应该从Windows应用程序打开另一个表单“

所以你知道将被点击的链接? 然后在WebBrowser导航方法中检查它是否是您期望的链接并打开WinForm,例如:

 private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) { if (e.Url.Tostring() == "http://localhost/LinkThatOpensFormTwo.htm") { Form2 f = new Form2(); f.Show(); 

您可以使用WPF浏览器应用程序在Web浏览器(首选Internet Explorer)中显示Windows窗体,应用程序具有嵌入Windows窗体(或类似.NET组件)的function。

这是一个有效的问题,因为有很多旧版.NET应用程序,公司没有资源为Web HTML 5格式 (使用AJAX等)开发。 这些遗留应用程序可以在Web浏览器中轻松显示,只需要很少的初始设置。

  1. 在现有的Visual Studio IDE中打开Windows窗体应用程序
  2. 转到“项目属性”并在“应用程序设置”中将输出类型设置为“类库” 在此处输入图像描述
  3. 添加类型’WPF Browser Application’的新项目,如下所示 在此处输入图像描述
  4. 引用Windows窗体(现为DLL)以及WindowsFormIntegrationSystem.Windows.Forms的两个重要程序集
  5. 编写代码以在XAML和XAML.CS页面中调用Windows窗体,如本教程链接中所示。
  6. 重建解决方案并单击Publish and Save选择File System,如下所示。 在此处输入图像描述
  7. 转到发布文件夹,然后双击扩展名为’.xbap的文件。 它应该在Internet Explorer中自动打开,并具有第一次要求的权限。
  8. 您应该能够在Web浏览器中显示输出。 在此处输入图像描述

如果您希望我创建video教程以实现相同目的, 请告诉我