如何在Webform中嵌入一个winform控件? 不可以的除非你的客户端都安装了.Net Framework,即使客户端都安装了,估计也很困难把WinForm的控件嵌入到WebForm中,至少目前没有人尝试过 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那请问project2000上的表格应该用什么方式实现? 你可以用WebForm中的DataGrid控件用法和WinForm的类似 直接用webform里的datagrid就行了。嵌入的做法需要客户端都安装.net Framework,比较麻烦 我用过webform上的。但是效果并不好,而且编辑添加时需要为每一行添加编辑添加删除按钮!我希望可以象在winform上一样直接通过鼠标选择取得我所要的项。而且最好可以象project一样,当选择一个cell时,会根据内容做出相应的处理。例如:选中的是用户名字时,当前的cell自动转换为textBox。而选中的是权限时,当前的cell自动转换为下拉框,到焦点离开时恢复成表格! Web程序没有那么方便的,要做成那样也可以,你的页面会变得很复杂,频繁的刷新会打消任何人使用你的程序的积极性Web程序有Web的做法,非要做成Windows那样是不现实的,至少现在有多方面的因素制约 to timmy3310(tim):http://expert.csdn.net/Expert/topic/954/954834.xml?temp=.7317621 我是看到这篇文章的!我觉得如果可以实现,可以带来很高的扩展性!但是实现时就象前面说的一样,有一些不明白的地方!主要的问题就是不知道如何引用,也不知道指向控件库的路径和控件的完全限定名怎么填写! 选中的是用户名字时,当前的cell自动转换为textBox。而选中的是权限时,当前的cell自动转换为下拉框,到焦点离开时恢复成表格!用WebForm中的DataGrid控件的模版列可以作到 模板列确实可以做到。但是必须先点一下编辑按钮,将当前行转为编辑状态。我的目的就是希望可以做到只将选中的Cell转为编辑状态。 To Zoujinyucn(不会游泳的鱼)就目前来说,这种技术用处不大,Web上的客户端有几个能装上.Net Framework? 下面的文字描述了如何在IE浏览器中执行Windows Forms控件。你看看吧,不知道有没有帮助。在IE中激活Windows Forms控件可以分四步来完成,下面所列的是详细的步骤: * 创建Windows Forms控件; * 创建一个包含对象标签的HTML文档; * 创建虚拟目录,复制并设置权限; * 运行该控件。 1. Windows Forms控件:SimpleControl.dll 几乎所有的Windows Forms控件都可以用,但在这个例子里,我们使用的是包含在.NET Framework SDK QuickStart Tutorial Creating Controls中的SimpleControl控件。 2. HTML文档: SimpleControl.html 接下来一步是生成内有一个对象tag的HTML文档,以激活Windows Forms控件。此外,还要加入一些脚本和输入tag(input tags)到该控件的示范程序入口。 <object id="simpleControl1" classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl" height="300" width="300"> <param name="Text" value="Simple Control"> </object> 对象tag: classid包含两个有趣的部分:导向控件库的路径和全名(fully qualified name),中间用“#”隔开。如果您熟悉ActiveX对象tag的话,您会发现我们没有使用GUID。在Windows 表单中,路径和全名(fully qualified name)合并在一起的整体被用来当作唯一的识别符。 参数tag被用来设置控件的属性:“name”参数是属性名,而“value”参数则是属性的值。 脚本: <script> function ChangeText() { simpleControl1.Text = text1.value; simpleControl1.Invalidate(); } </script> <input type="text" id="text1"> <input type="button" value="Change Text" onclick="ChangeText()"> 您可以写一个脚本来获得控件的程序入口,页面上的按钮和文本框已关联到一个简单的函数ChangeText,以设置该控件的text属性。为了是修改的结果体现出来,控件必须重绘(调用invalidated()实现)。 完整代码 下面是这个例子完整的HTML代码: <script> <html> <script> function ChangeText() { simpleControl1.Text = text1.value; simpleControl1.Invalidate(); } </script> <body> <p>Simple Control</p> <br> <br> <object id="simpleControl1" classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl" height="300" width="300"> <param name="Text" value="Simple Control"> </object> <br> <br> <input type="text" id="text1"> <input type="button" value="Change Text" onclick="ChangeText()"> </body> </html> 3. 虚拟目录: 创建一个新的虚拟目录,并将控件(SimpleControl.dll)和HTML文档(SimpleControl.html)放到这个目录里。 重要:将该虚拟目录的执行权限设置为“脚本”,如果将执行权限设置为“脚本& 执行”的话,控件将不能正常激活。 4. 运行控件: 用IE浏览器里指明虚拟目录和SimpleControl.html文件,即运行该控件。如果控件没有被正常激活,则可能需要重启一下IE或清空assembly下载缓存(assembly download cache)。 注意: 注册了assembly缓存查看器(assembly cache viewer)后,您就可以查看您的assembly下载缓存(assembly download cache)的内容了,注册的方法为,到包含了.Net Framework runtime的目录(通常为%windir%\Microsoft.NET\Framework\v1.0.2204)下并运行“regsvr32 shfusion.dll”。现在用资源管理器打开缓存目录(一般为%windir%\ Assembly),便可以看到缓存的内容了。 要将控件从assembly下载缓存(assembly download cache)中清除,在查看器(viewer)中右键单击相应控件,在打开的菜单里选“删除”。(这个方法如果不行的话,请小心的将SimpleControl*.dll文件从你的缓存目录(通常为%windir%\Assembly) c# WINFRM 导出EXCEL 用Stream来保存图片 [马上结贴]DataSet更新后的状态问题 c# 能不能声明一个类数组? XtraReport 间隔颜色不能正确显示,请教! c#2.0中tablelayoutpanel做的表格 如何使其每行背景颜色不同 或者间隔颜色 請教(Winform)DataGrid的問題[在線等...急.....] 关于多个selectCommand来填充DataSet的问题!!!急急急!!! VS2010调用类库,不识别 C#什么时候发行正式版 自定义用户控件中,如何让lable变成背景透明? 用.NET开发ORACLE的程序
嵌入的做法需要客户端都安装.net Framework,比较麻烦
而且最好可以象project一样,当选择一个cell时,会根据内容做出相应的处理。
例如:选中的是用户名字时,当前的cell自动转换为textBox。而选中的是权限时,当前的cell自动转换为下拉框,到焦点离开时恢复成表格!
我是看到这篇文章的!我觉得如果可以实现,可以带来很高的扩展性!但是实现时就象前面说的一样,有一些不明白的地方!主要的问题就是不知道如何引用,也不知道指向控件库的路径和控件的完全限定名怎么填写!
用WebForm中的DataGrid控件的模版列可以作到
我的目的就是希望可以做到只将选中的Cell转为编辑状态。
* 创建Windows Forms控件;
* 创建一个包含对象标签的HTML文档;
* 创建虚拟目录,复制并设置权限;
* 运行该控件。
1. Windows Forms控件:SimpleControl.dll
几乎所有的Windows Forms控件都可以用,但在这个例子里,我们使用的是包含在.NET Framework SDK QuickStart Tutorial Creating Controls中的SimpleControl控件。
2. HTML文档: SimpleControl.html
接下来一步是生成内有一个对象tag的HTML文档,以激活Windows Forms控件。此外,还要加入一些脚本和输入tag(input tags)到该控件的示范程序入口。
<object id="simpleControl1" classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl" height="300" width="300"> <param name="Text" value="Simple Control"> </object> 对象tag: classid包含两个有趣的部分:导向控件库的路径和全名(fully qualified name),中间用“#”隔开。如果您熟悉ActiveX对象tag的话,您会发现我们没有使用GUID。在Windows 表单中,路径和全名(fully qualified name)合并在一起的整体被用来当作唯一的识别符。
参数tag被用来设置控件的属性:“name”参数是属性名,而“value”参数则是属性的值。 脚本:
<script> function ChangeText() { simpleControl1.Text = text1.value; simpleControl1.Invalidate(); }
</script> <input type="text" id="text1"> <input type="button" value="Change Text" onclick="ChangeText()">
您可以写一个脚本来获得控件的程序入口,页面上的按钮和文本框已关联到一个简单的函数ChangeText,以设置该控件的text属性。为了是修改的结果体现出来,控件必须重绘(调用invalidated()实现)。
完整代码
下面是这个例子完整的HTML代码:
<script> <html> <script> function ChangeText() {
simpleControl1.Text = text1.value;
simpleControl1.Invalidate();
} </script> <body> <p>Simple Control</p>
<br>
<br> <object id="simpleControl1"
classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl"
height="300"
width="300">
<param name="Text" value="Simple Control">
</object> <br>
<br> <input type="text" id="text1">
<input type="button" value="Change Text" onclick="ChangeText()"> </body> </html> 3. 虚拟目录:
创建一个新的虚拟目录,并将控件(SimpleControl.dll)和HTML文档(SimpleControl.html)放到这个目录里。
重要:将该虚拟目录的执行权限设置为“脚本”,如果将执行权限设置为“脚本& 执行”的话,控件将不能正常激活。
4. 运行控件:
用IE浏览器里指明虚拟目录和SimpleControl.html文件,即运行该控件。如果控件没有被正常激活,则可能需要重启一下IE或清空assembly下载缓存(assembly download cache)。
注意: 注册了assembly缓存查看器(assembly cache viewer)后,您就可以查看您的assembly下载缓存(assembly download cache)的内容了,注册的方法为,到包含了.Net Framework runtime的目录(通常为%windir%\Microsoft.NET\Framework\v1.0.2204)下并运行“regsvr32 shfusion.dll”。现在用资源管理器打开缓存目录(一般为%windir%\ Assembly),便可以看到缓存的内容了。
要将控件从assembly下载缓存(assembly download cache)中清除,在查看器(viewer)中右键单击相应控件,在打开的菜单里选“删除”。(这个方法如果不行的话,请小心的将SimpleControl*.dll文件从你的缓存目录(通常为%windir%\Assembly)