VB中制作控件,遇到一些问题:
    像ListBox的List属性,可以有个下拉框输入,自己制作的控件如何实现这样的效果?
    像TextBox控件的DataSource属性,能自动列出所有的ADO控件,我制作的控件也想达到这样的效果,有一个属性想列出窗体上所有的CommandButton控件,如何才能达到啊。
     
    另外,我的控件中有这样的一些代码,但提示出错,有兄弟知道为什么吗?
        dim withEvents cmd as CommandButton    Public Property Let a(ByVal New_a As String)
    m_a = New_a
    PropertyChanged "a"
    Set cmd = Parent.Controls(New_a)       '此行出错,提示“控件不支持此事件集”,如果把WithEvents去掉就不会错
End Property完成后立即结贴

解决方案 »

  1.   

    DataCombo需要引入
    如果是VB创建的企业级的就不用了
      

  2.   

    引入Microsoft DataList Controls 6.0
      

  3.   

    楼上的几位兄弟,看清楚啊。
    我是想在自己制作的控件加入以下功能,是在自定义控件中,不是什么Datalist1. 像ListBox的List属性,可以有个下拉框输入,自己制作的控件如何实现这样的效果?也就是说自己制作的控件如何能实现有个下拉框输入的功能2. 像TextBox控件的DataSource属性,能自动列出所有的ADO控件,我制作的控件也想达到这样的效果,有一个属性想列出窗体上所有的CommandButton控件,如何才能达到啊3.  我自己制作的控件中有这样的一些代码,但提示出错,有兄弟知道为什么吗?
            dim withEvents cmd as CommandButton    Public Property Let a(ByVal New_a As String)
        m_a = New_a
        PropertyChanged "a"
        Set cmd = Parent.Controls(New_a)       '此行出错,提示“控件不支持此事件集”,如果把WithEvents去掉就不会错
    End Property
      

  4.   

    1. 像ListBox的List属性,可以有个下拉框输入,自己制作的控件如何实现这样的效果?也就是说自己制作的控件如何能实现有个下拉框输入的功能
    高人们  解释一下这个问题吧 ?
      

  5.   

    另外,我的控件中有这样的一些代码,但提示出错,有兄弟知道为什么吗?
            dim withEvents cmd as CommandButton    Public Property Let a(ByVal New_a As String)
        m_a = New_a
        PropertyChanged "a"
        Set cmd = Parent.Controls(New_a)       '此行出错,提示“控件不支持此事件集”,如果把WithEvents去掉就不会错
    End PropertySet cmd = New ......加一个 New
      

  6.   

    Public Property Let a(ByVal New_a As String)怎么不定义成Public Property Let a(New_a As CommandButton)
    set cmd=New_a
      

  7.   

    boywang(大力水手) :试过了,也没有用,会产生同样的错误。就是因为这种不行,所以才改用Public Property Let a(ByVal New_a As String)的
      

  8.   

    1. VB写的控件不能实现这个功能, 不过你可以通过添加属性页来实现类似的功能2. 同上面的情况大致相同, 可以添加属性页, 在属性页中遍历窗口中的控件, 以找到CommandBUtton, 然后将其名称添入列表3. 很愦憾, 我在测试你的代码时未出现任何错误, 而且在 Set cmd = Parent.Controls(New_a)  句后面加上Debug.print cmd.Caption还可以正确读出该属性值。我认为你应该确保传入的字符串是窗体控件中的一个命令按钮的名称(即Name属性值)
      

  9.   

    songyaowu(不以分多而蹭之;不因分少而不答; www.vb99.com) :关键问题在于这一行
    dim withEvents cmd as CommandButton如果将withEvents去年,则不会有什么问题,如果加上,就报错。不知道你测试时有时加上WithEvents
      

  10.   

    用 WithEvents 时,必须像我说的那样....在模块顶部定义...
    Private WithEvents cmd as CommandButton然后在 Form_Load 里重新定义....Dim cmd As New CommandButton
      

  11.   

    我打错了,
    在 Form_Load 里应该写.....Set cmd = New CommandButton
      

  12.   

    Set cmd = New CommandButton??好像控件不能用New吧试试先