用C#编写ActiveX控件.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用C#编写ActiveX控件

前些日子做一个Web项目,必须自己编写一个ActiveX控件。如今的ActiveX控件大多是使用VB/C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写ActiveX控件。? ??? 首先,建立一个WinForm控件项目HelloWorld,并拖入一个Label控件,文字设为HelloWorld,如图:? UserControl1.cs内容如下:? using?System;? using?System.Collections;? using?System.ComponentModel;? using?System.Drawing;? using?System.Data;? using?System.Windows.Forms;? ? namespace?HelloWorld? {? ????///?summary? ????///?UserControl1?的摘要说明。? ????///?/summary? ????public?class?Demo?:?System.Windows.Forms.UserControl? ????{? ????????private?System.Windows.Forms.Label?label1;? ????????///?summary? ????????///?必需的设计器变量。? ????????///?/summary? ????????private?System.ComponentModel.Container?components?=?null;? ? ????????public?Demo()? ????????{? ????????????//?该调用是?Windows.Forms?窗体设计器所必需的。? ????????????InitializeComponent();? ? ????????????//?TODO:?在?InitComponent?调用后添加任何初始化? ? ????????}? ? ????????///?summary? ????????///?清理所有正在使用的资源。? ????????///?/summary? ????????protected?override?void?Dispose(?bool?disposing?)? ????????{? ????????????if(?disposing?)? ????????????{? ????????????????if(?components?!=?null?)? ????????????????????components.Dispose();? ????????????}? ????????????base.Dispose(?disposing?);? ????????}? ? ????????组件设计器生成的代码? ????}? }? ??? 此时编译项目,可以生成HelloWorld.dll。将此dll拷贝到IIS的虚拟根目录下,然后建立一个helloworld.htm的文件,html代码如下:? body?bgcolor=#223344? object?id=helloworld?classid=’http://localhost/HelloWorld.dll#HelloWorld.Demo’?Width=184?Height=96??VIEWASTEXT?/object? /body 在IE地址栏中输入以下地址: HYPERLINK http://localhost/helloworld.htm http://localhost/helloworld.htm,出现界面:? 如图,控件已经成功在页面上显示了。OK,我们已经完成了第一步。? ??? 但是问题到这里还没有解决。不相信?你可以试试在另外一台机器上测试,注意需要修改对应的html代码和URL地址。你可以看到这个在原来显示控件的地方是一个红色的叉,或者还会弹出一个对话框,表示这个控件没有任何权限。出现这个结果是微软的默认设置造成的,作者必须在控件所在的控件的 AssemblyInfo.cs/vb 中执行一个安全声明,声明这个控件必须使用赋予的权限,才可以显示出界面。我们在AssemblyInfo.cs中引用System.Security命名空间,并添加一句:? [assembly?:?AllowPartiallyTrustedCallers()] 现在重新编译,并且替换以前的dll,界面又可以显示出来了。? ??? 需要提醒的是,到现在为止,我们编写的还不是真正的ActiveX控件。这个控件到现在为止,还只是能够实现自身的显示,并且不能实现更多的功能,比如实现与脚本的交互或者操作客户端的注册表

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档