在asp.net网页中托管Windows窗体用户控件

时间:2012-02-10 09:40:06

标签: c# asp.net winforms user-controls

我创建了一个Windows窗体用户控件,我需要将它放在一个网页中。我见过很多链接:

但它没有用。

将WIndows表单用户控件放在网页中。我在网页上写了以下代码。

<body>
    <form id="form1" runat="server">
    <div>
      <object id="MyWinControl" 
         classid="http:VideoShareUserControl.dll#VideoShareUserControl.UserControl1"
         height="100%" 
         width="100%" VIEWASTEXT />
    </div>
    </form>
</body>

但它不起作用。

所以请给我任何解决方案。

1 个答案:

答案 0 :(得分:0)

我认为您忘了设置一些选项:

  1. 在项目属性页面的构建菜单中设置com interop的注册表。
  2. 你的控件的代码应该是那样的(不要忘记Comvisible和Guid):
  3. 代码:

    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页面中的
    1. 使用以下代码:

      <object classid="clsid:CD46781D-B691-4287-B802-C9E2540AF08A" />

    2. 将您的控件dll放在网站的根目录

    3. 无需将其添加为参考。