×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

I didn't try windows control in web page, I can add under design view by using drag and drop ......

本文发表在 rolia.net 枫下论坛using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace MyWebControls2
{
/// <summary>
/// Summary description for WebCustomControl1.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:WebButton runat=server></{0}:WebButton>")]
public class WebButton : System.Web.UI.WebControls.Button
{
private string displayString;
public WebButton( )
{
this.Text = "Button";
InitValues();
}
public WebButton(string displayString)
{
this.displayString = displayString;
InitValues();
}
private void InitValues( )
{
if (ViewState["Count"] == null)
ViewState["Count"] = 0;
this.Text = "Click me";
}
private void InitializeComponent()
{

}
public int Count
{
get
{
return (int) ViewState["Count"];
}

set
{
ViewState["Count"] = value;
}
}

protected override void OnClick(EventArgs e)
{
ViewState["Count"] = ((int)ViewState["Count"]) + 1;
this.Text = ViewState["Count"] + " " + displayString;
base.OnClick(e);
}
}
}更多精彩文章及讨论,请光临枫下论坛 rolia.net
Report

Replies, comments and Discussions:

  • 工作学习 / IT技术讨论 / 诸位同道,有谁做过vb->vb.net转换的,还是一个WebCustomControl,转换为实现多线程。WebCustomControl不能像vb6里的自定义控件那么容易调试了,而且生成的是dll,不是ocx。
    • 帮瞎忙吧,用vb.net生成的webControlLibarry怎么这么难用,放不到网页上去,只能在网页下面,没法可视化。怎么回事?
      • 不会的。晚上去找个例子对照一下。
        • 我做了个最简单的,只有一个摁钮,编译后可以在toolbox上的my user control上出现拉到网页上就变成了不可视控件。是不是哪里有设置可视化?
          • 不需要啊,参照这个。
          • 你是指看不到摁钮?
            • 不是看不到,是加不上,做好的控件放不到页面上,就像往页面上拉一些dataprovider、或timer控件。
              • 在HTML View 里加。比如: <cc1:Ctrl1 runat="server" id="ctrl_1" />
                • 在试。。。,看来.net里window control, web control不能混用,不向vb6都是一个ocx文件,必须各自作
                  • I didn't try windows control in web page, I can add under design view by using drag and drop ......
                    本文发表在 rolia.net 枫下论坛using System;
                    using System.Web.UI;
                    using System.Web.UI.WebControls;
                    using System.ComponentModel;

                    namespace MyWebControls2
                    {
                    /// <summary>
                    /// Summary description for WebCustomControl1.
                    /// </summary>
                    [DefaultProperty("Text"),
                    ToolboxData("<{0}:WebButton runat=server></{0}:WebButton>")]
                    public class WebButton : System.Web.UI.WebControls.Button
                    {
                    private string displayString;
                    public WebButton( )
                    {
                    this.Text = "Button";
                    InitValues();
                    }
                    public WebButton(string displayString)
                    {
                    this.displayString = displayString;
                    InitValues();
                    }
                    private void InitValues( )
                    {
                    if (ViewState["Count"] == null)
                    ViewState["Count"] = 0;
                    this.Text = "Click me";
                    }
                    private void InitializeComponent()
                    {

                    }
                    public int Count
                    {
                    get
                    {
                    return (int) ViewState["Count"];
                    }

                    set
                    {
                    ViewState["Count"] = value;
                    }
                    }

                    protected override void OnClick(EventArgs e)
                    {
                    ViewState["Count"] = ((int)ViewState["Count"]) + 1;
                    this.Text = ViewState["Count"] + " " + displayString;
                    base.OnClick(e);
                    }
                    }
                    }更多精彩文章及讨论,请光临枫下论坛 rolia.net
                    • 谢谢了
    • 这么简单的事情。。。
      • 这个正点,好像是这么回事,谢谢
        • 但是前提条件是看这个的客户端都需要安装至少.net runtime
          • 给他做个安装包,*.cab如何?
            • 这个就没有试验过了。。。
              不过即便是由安装包,.net runtime 1.1也有20多兆,最终用户岂不是要痛苦死了?
              • 那岂不没戏了:(,还有这个http:AuthorsWebServiceClientControl.dll网页上哪里读取呀,糊涂了
                • 没有具体作过,瞎猜一下。。。
                  那个DLL应该在ASPX或者HTML相同的路径下,也许能够分开路径。我目前在网上唯一一个看到这样方式实用的是http://www.gotdotnet.com/community/workspaces/ 里面的Source Control
                • GotDotNet里面这么写的
                  <object id="SourceControl" classid="Wrapper.dll#Microsoft.Workspaces.SourceControl.UI.Wrapper" height="400px" width="100%" VIEWASTEXT>
                  </object>
          • 以前做vb6控件时,安装包也要加入vb6 runtime,怎么现在会这么大?不让这么玩了么?也许不用全部下载,反正微软的网上应该有吧
            • 但是第一次安装之后,以后再也不需要安装了
              • 找不到VB.NET的打包工具!
    • up,again,我记得这里好多.net大侠的。在web page上用.net的windows user control,说权限有问题,.net也没打包工具怎么办?怎么比vb6 还难用
      • 好奇而已:
        1. 如果是在aspx上用这个CustomControl, 不能做WebCustomControl来代替你的WindowCustomControl吗?我觉得完全可以做到。
        2. 如果是在Html上用这个CustomControl, 你刚脆用VB做得了。

        当然,如果你只是想Try, 那就另一回事了,当我没问。
        • 现在要在网页上做声音处理,web那些控件根本不够用,要调用windows api,本来是用vb6作的,可是vb6不支持多线程,现在的performance特别差,只好改用.net了。可是.net限制特多,网页里好像不能执行api了。
          • 需要多线程干什么?这样做已经是将Application直接Host到每个客户的本地上,不是服务器端的运行。
            • 就是在本地运行作多媒体处理。最后结果上传就行了。而且不能作成应用程序,在网页上使用
              • 既然都是客户端运行,为什么不就做一个OCX呢(用VC做尺寸小很多)?反正不用太在意什么多线程,要慢就慢在客户端。
                • 不是因为处理慢,而是同时处理声音信号作图线并存盘,这两件事必须同时做,不用多线程的话,要么图线不精确,要么存盘文件声音质量低下
    • 还得继续问,现在做好的vb.net的windows control在windows form里可以用,放在网页上就会死在windows api的调用上。vb6的控件就没事呀。都是用的.net的网页呀
      • 把机器上的aspnet归入administrators里也没用吗?
        • 好酒之前就是了,现在连Internet用户都是admin了,都不行
          • IIS 里的Anonymous access有没有打勾
            以前用过两次API Call在.NET Web App (Word doc 转换PDF和用GDI生成图像, 中间层Call)。没发现有权限问题(aspnet是administrator)。

            你慢慢等那些高手有空的时候帮你解决吧。
    • 事情还没有结束,怎么只有两位大侠帮我?因为我不是妹妹么?Varptr函数不能用了,在.net里怎么调用指针?api函数必须要用阿。高手在哪里呀
      以下方法好像不管用,取不回我的自定义的结构的地址
      Public Function VarPtr(ByVal o As Object) As Integer

      Dim GC As System.Runtime.InteropServices.GCHandle = System.Runtime.InteropServices.GCHandle.Alloc(o, System.Runtime.InteropServices.GCHandleType.Pinned)

      Dim ret As Integer = GC.AddrOfPinnedObject.ToInt32

      GC.Free()

      Return ret

      End Function
    • 不管了,继续up
    • 贼心不死,再up
      • 恬不知耻,再up
        • 死皮赖脸还up、
          • 头破血流又up
            • 最后一次的up
              • 建议用VC做ActiveX控件
      • UP for my brother.