我自己写了个activex控件,控件有一个text属性,奇怪的是我把控件拖放到页面上后没有id属性,只有classid属性,于是我自己添加了一个id="Beep"。
然后我想实现这样的功能,当页面中一个文本框内容改变的时候activex控件的text属性跟随改变,于是在TextChanged事件中加入如下代码。
private void TextBox1_TextChanged(object sender, System.EventArgs e)
{
Beep.Text=TextBox1.Text;
}
由于Beep未知,所以开头加入如下代码(Porject1是vb做的activex控件)
 using Project1;
 protected Project1.UserControl1Class Beep;
接着运行时出现了:
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
我的问题是怎么把页面上的activex控件和这个Beep变量关联起来啊。
我曾想用客户端脚本来做,但是哪个object的id是我自己写的,好像也不受我控制,救救我啊!

解决方案 »

  1.   

    activex控件,在页面上,是在客户端运行的,所以你只能通过脚本来访问它的属性.
      

  2.   

    可是我把activex控件拖到页面上后,没有id属性(不知道是不是activex开发的时候没写好),但是可以正常显示(都在本机上测试的,注册应该没问题),现在的问题是没有id可以控制它吗?自己加个id行不行?
      

  3.   

    这是我的activex控件
    <OBJECT id="Beep" style="WIDTH: 320px; HEIGHT: 240px" classid="clsid:C2A02E1F-0225-4E8E-B890-C45B00695866"
    VIEWASTEXT>
    <PARAM NAME="_ExtentX" VALUE="8467">
    <PARAM NAME="_ExtentY" VALUE="6350">
    <PARAM NAME="Text" VALUE="1000,500">
    </OBJECT>
    谢谢cpp2017(慕白兄),自己加的id可以用 ,现在还有个问题:我的控件的Text属性在设计的时候是管用的,将值修改后可以显示在设计页面上,但是运行后却显示为空(设计时对value的改变没有作用),好奇怪啊,我的activex初始化的时候没有做这个工作啊
      

  4.   

    现在的问题是我的脚本里可以访问到Beep,但是不能调用Text属性,这个属性是用vb接口向导生成的,还有那个_ExtentX,_ExtentY也不能访问,为什么?
      

  5.   

    1。
    Activex 运行在客户端,只有在客户端通过脚本访问2。
    但是不能调用Text属性,这个属性是用vb接口向导生成的,还有那个_ExtentX,_ExtentY也不能访问,为什么?
    =========
    先通过 ActiveX Test Container 测试你的Ax控件是否正常
      

  6.   

    你在VB中测试过你的ActiveX控件么?
      

  7.   

    谢谢大家的关注,控件在ActiveX Test Container测试时属性没有问题,可是放在网页上以后就是访问不到这个属性
      

  8.   

    <PARAM NAME="_ExtentX" VALUE="8467">
    <PARAM NAME="_ExtentY" VALUE="6350">
    <PARAM NAME="Text" VALUE="1000,500">
    上面这些属性的VALUE在设计的时候可用,我改变它们马上可以在设计窗里体现出来,但是运行时却都访问不了,为什么?