有个heloword的windows窗体控件我把它弄为UserControl1.cs 
代码如下: public delegate void ClickEventHandler(object sender, EventArgs e);
        public event ClickEventHandler Click;
        public string OutputParameter
        {
            get
            {
                //返回你的数据,这个括号里放你要返回的值
                return ("sss");
            }
        }
        private void button2_Click(object sender, EventArgs e)
        {
            if (Click != null)
            {
                //事件发生
                Click(this, e);
            }
        }
然后我在bs页面.aspx里面代码如下<object id="csharpActiveX" 
                classid="clsid:F742E011-3467-4447-B069-C5BF3D148EF9" 
                codebase="Setup.exe" Width="400" Height="400" ></object><SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click">
            <!-- {
                                   alert('11111');
                               
            -->
            </SCRIPT>可是没有弹出对话框,谁知道怎么回事啊?

解决方案 »

  1.   

    我的页面代码就是要获取点击activex里面button2时候所触发的Click事件啊
      

  2.   

    codebase你调用的不应该是exe把,应该是一个dll啊
      

  3.   

    codebase错误貌似没什么关系的
    在button2的Click中增加parent.调用所在页面的脚本vb是这样的,c#没做过
    问题是你确保客户端安装了framework?
    否则activex怎么运行!?
      

  4.   

    各种求哈哈DEMO
      

  5.   

    你看这样行不行,在c#中声明一个函数,该函数的参数为object jfunc,该函数作用为将一个delegate = jfunc,然后在javascript中调用该函数,将javascript的一个函数名传入jfunc。这样再执行c#中的delegate尝试一下。
      

  6.   

    经理就让我用
    <SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click">
                <!-- {
                                       alert('11111');
                                   
                -->
                </SCRIPT>这种方式其他的不让用
      

  7.   

    可能存在的你的activex激活的原因
      

  8.   

    你的用户控件是不是少东西啊
    参照http://apps.hi.baidu.com/share/detail/18677476  一下吧
      

  9.   


    这位老兄你好,你给的这篇文章中的内容我都能实现。你没有看懂我的问题我的问题是:通过javascript的event事件
    <SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click">
                <!-- {
                                       alert('11111');
                                   
                -->
                </SCRIPT来捕获activex里面的 click事件
      

  10.   

    SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click"> 
    呵呵,我看的很怪异 
      

  11.   


    这里event="Click" 哪里错了啊?应该怎么改啊?
      

  12.   

    同學activex 不是這樣寫的
    再說用c#寫activex本身就不具可行性 c#需要.netFramework才能運行 
    你能確保客戶端都裝了.netFramework 嗎
    所以你再這個問題上糾結 完全是浪費時間
    參考
      

  13.   

    你最好定义委托时用基本的类型(int string 等多些参数没关系),否则你的考虑控件的列集合散集
      

  14.   

    是需要这个吗?示例: 
    <object classid="CLSID:F896679F-13FB-49FD-87E8-2213DD41DF4E"
     id=DefaultOcxName width=100% height=100%
     codebase="http://CLISOFT-XUJIAN/ETBEditorProj.cab#version=1,0,0,0" hspace=0
     vspace=0 VIEWASTEXT>
     <param name=Visible value=0>
     <param name=AutoScroll value=0>
     <param name=AutoSize value=0>
     <param name=AxBorderStyle value=1>
     <param name=Caption value=ETBEditor>
     <param name=Color value=4278190095>
     <param name=Font value="MS Sans Serif;82500;400;0;0;0;0">
     <param name=KeyPreview value=0>
     <param name=PixelsPerInch value=96>
     <param name=PrintScale value=1>
     <param name=Scaled value=-1>
     <param name=DropTarget value=0>
     <param name=HelpFile value="">
     <param name=ScreenSnap value=0>
     <param name=SnapBuffer value=10>
     <param name=DoubleBuffered value=-1>
     <param name=Enabled value=-1>
     </object>
    <script type="text/javascript" for="DefaultOcxName" event="OnSave(sender);">
      document.getElementById("hf_tabledesign").value = document.getElementById('DefaultOcxName').GetTableDesignStr();
      //alert(document.getElementById("hf_tabledesign").value);
      document.getElementById("hf_dosavetag").value=1;
      document.form1.submit();
    </script>
      

  15.   


    请问我在activex的cs页面中该怎么写啊?
      

  16.   

    function m_Date1::OnDateChanged(Date)
    {
      //代码
    }
    OnDateChanged是m_Date1自己触发的事件,m_Date1是C++做的,你试试
      

  17.   

    <SCRIPT language="javascript" type="text/javascript" for="csharpActiveX" event="Click(sender,e)"> 
    //你的响应的代码
    alert(sender);
    alert(e);</Script>
      

  18.   


    我按照你的代码加上了但是不管用啊?
    我的csharpActiveX后台代码这样写的 public delegate void ClickEventHandler(object sender, EventArgs e);
            public event ClickEventHandler Click;
            public string OutputParameter
            {
                get
                {
                    //返回你的数据,这个括号里放你要返回的值
                    return ("sss");
                }
            }
            private void button2_Click(object sender, EventArgs e)
            {
                if (Click != null)
                {
                    //事件发生
                    Click(this, e);
                }
            }
      

  19.   

    我用那个activex是用delphi封装的,C#写的没试过,理论上应该是一致的吧
      

  20.   

    这样吧,你先用ocx的控件调试器,试试,看看有木有事件的响应