在asp.net网页中托管Windows窗体用户控件
本文关键字:Windows 窗体 用户 控件 asp net 网页 | 更新日期: 2023-09-27 18:23:56
我创建了一个Windows窗体用户控件,需要将它放在网页中。我看到了很多链接:
-
https://web.archive.org/web/20210619191631/https://www.4guysfromrolla.com/articles/052604-1.aspx
-
http://blogs.msdn.com/b/andrewdownum/archive/2006/01/10/controlinbrowserintroduction.aspx
-
http://weblogs.asp.net/spano/archive/2007/09/19/hosting-a-windows-form-control-in-a-web-page.aspx
但它不起作用。
将该窗口窗体用户控件放入网页中。我在网页上写了以下代码。
<body>
<form id="form1" runat="server">
<div>
<object id="MyWinControl"
classid="http:VideoShareUserControl.dll#VideoShareUserControl.UserControl1"
height="100%"
width="100%" VIEWASTEXT />
</div>
</form>
</body>
但它不起作用。
所以请给我提供任何解决方案。
我想你忘了设置一些选项:
- 从项目属性页中的生成菜单中设置com互操作的寄存器
- 控件的代码应该是这样的(不要忘记Comvisible和Guid):
代码:
using System.Runtime.InteropServices;
namespace WindowsFormsControlLibrary1
{
[ComVisible(true)]
[Guid("CD46781D-B691-4287-B802-C9E2540AF08A")]
[ProgId("WpfComHostDemo.WinformHostUserControl")]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(Environment.UserName+" "+Environment.MachineName+" "+
Environment.OSVersion);
}
}
}
在您的html或asp.net页面中使用以下代码:
<object classid="clsid:CD46781D-B691-4287-B802-C9E2540AF08A" />
将uour控件dll放在您的网站的根目录中
- 没有必要将其添加为引用