我想把自己写的一个UserControl控件转换成web上可以直接使用的控件,怎么可以实现?

wenzm 2002-03-23 09:43:43
我想把自己写的一个UserControl控件转换成web上可以直接使用的控件,怎么可以实现?(我想在web from中能直接拖放上去)
...全文
134 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenzm 2002-03-27
  • 打赏
  • 举报
回复
没有Step by Step的解决办法么?
wenzm 2002-03-25
  • 打赏
  • 举报
回复
又:
我的确是想把一个windows Form的控件直接加入到ToolBox中然后能拖放到webForm上使用的。在Delphi中有一

中叫activeForm的东西,它其实也是Active的一种形式——它是一个普通的Window Form,所以设计的时候,能

在其上面放任何可视和不可视的控件到上面,但最后它这个的 编译后能生成一个OCX控件,这个就能加入到

.Net Web Application的ToolBox中使用…… 基于此,我想.NeT 中是否有相关的技术实现类似的功能?(本来

发现比Delhi好得多的一点就是.NET的UserControl能让用户方便的定制自己需要的控件,但在Active Form方面

,难道没有想关的技术吗? 毕竟,window Form 的控件要比WebForm的控件丰富得多了!
另外 jhnhu(jhnhu) 的DLL调用方法想想也是不行的:基于IE的用户,不能要求他们都装上.Net .net

framework的
wenzm 2002-03-25
  • 打赏
  • 举报
回复

首先谢谢各位的参与和回答!
好象 niwalker() 的方法不太能行,因为我的UserControl中使用了System.windows.form下的控件,而 Web下的所有项目(如Web Control Library)或类中好象根本就不能使用(Using)System.windows.form中的类(控件)

icyer()说的“ 工具箱中的控件都是System.Web下的,而你写的控件则是System.Windows下的” 我觉得也好象是,但我想应该也有其他方法可以达到的吧!

jhnhu(jhnhu) 说的和html的关系我觉得也很有道理的,在IE中使用的界面,最终最该还是要翻译成Html的。至于的你说的DLL的方法,我还没有Try,我不要求写文件,但要求能传入一个参数!
wenzm 2002-03-25
  • 打赏
  • 举报
回复
谢谢 niwalker()

因为我做的是一个相对来说很复杂的UserControl,如果寻求其他技术解决的话,其中的很多技术(技巧)都要找相应的解决办法,工作量会很大,而且不一定都能顺利的找到解决办法,所以出此下 策…… :(

能直接转换,多省事。呵呵:)
niwalker 2002-03-25
  • 打赏
  • 举报
回复
我是让你实现一个Web的Custom Contorl, 如果你非常有经验于控件的开发,你完全可以做出非常类似Windows UserControl的东西出来。给你推荐一个网址,上面的Web Control菜单控件的功能同Windows Form的控件相比一点都不逊色。与其苦苦地想如何转换,还不如看看他们是怎么做的。希望对你有帮助:)
http://www.aspnetmenu.com/home.aspx
还有一个网址是关于Grid控件:http://www.dbnetgrid.com/dbnetgrid/demos.aspx
wenzm 2002-03-25
  • 打赏
  • 举报
回复

自己定义的UserControls(例如为:WebWorkFlow,所在namespace为:WebPubControls ),生成Dll后,在Refrence中Add后,在WebForm的代码编写环境中编写时,已经能看到WebPubControls 、WebWorkFlow等对象及其WebWorkFlow的Public属性方法了,但是编译的时候是没办法通过的,因为UserControl 继承自System.Windows.Form.UserCOntrol中,而web项目中不允许Using System.Windows.Form这个NameSpace的,所以没办法通过! 我试着用tlbEpx和regasm来生成一个COM,也是不行的(使用命令行组册时不会出错,但加入到ToolBox的COM中时提示:It was Not Recoginized as a COM Server )。当然我在UserControl中已经加入了ClassInterface(ClassInterfaceType.AutoDual )]

有什么办法可以实现我的要求吗?
jhnhu 2002-03-23
  • 打赏
  • 举报
回复
还有另一种发布方式,你的windows forms control,可以先作成窗体(dll),加到asp.net application中。当调用时,客户端会弹出这个窗体(client must installed .net framework),不是在IE中,和一般的form一样。这当然是有安全性的,如果这个form想写文件,client就会提示。
jhnhu 2002-03-23
  • 打赏
  • 举报
回复
我的理解

windows forms control VS web control
大家熟悉的windows forms control,主要是把代码封装在对象、方法中,当调用时,程序就执行相应的代码

而web control
不但封装了逻辑上的代码,还要有动态生成html代码的功能,以便能把数据以及界面的html代码传给browser。比如查询到了10个结果,就得用循环WriteLine出相应的html代码,至于什么样的,什么颜色,那就是你的代码的功能了。很像ASP,应该不局限于html代码,javascript、vbscript...凡是浏览器能解析的都可以。

所以,从windows forms control转成web control,不是那么容易的,还要看你的html造诣如何了,:)(至少我很怕web的东西)

.net还有
niwalker 2002-03-23
  • 打赏
  • 举报
回复
to icyer():看清楚了,不是Windows控件
niwalker 2002-03-23
  • 打赏
  • 举报
回复
你能肯定你说的是UserControl吗?明确地说UserControl不支持拖放。要支持拖放功能,你必须把你的控件做成Custom Control。
UserControl仅仅是一个Pagelet
下面是你的问题的解决步骤:
1、创建一个Web Control Library项目
2、在类中实现你在UserControl中实现的功能
3、编译,将生成的DLL文件复制到要使用它的那个项目的Bin目录下
(如果你要每个项目都可以使用这个控件,你必须在.NET中把它注册成全局控件,具体的做法查看帮助文档)

4、右键点击Web项目的工具栏,选定制工具框(Customize Toolbox...)
5、在对话框选Browser,找到刚才那个DLL文件
6、在工程项目添加这个DLL的引用,做法类似步骤5
7、你可以拖放了:)

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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