自制控件的共同属性如何设置?
我下载了六个色子的图案,准备制作一个色子控件。首先在ActiveX控件窗体上载入了第一张图案(画面为1点的色子),然后在外接程序处启动了ActiveX控件接口向导,在自定义成员界面新建了num属性,在设置映射界面没作选择,在设置属性界面设置数据类型为interger, 缺省值为1。然后就不知怎么做了。 我想请教怎样载入后五个图案并设置共同的num属性,数值分别为2-6?我制作的目的是在调用色子控件后,找到num属性,选择值为3时,色子的图案就变为第三张图案,等等。请教大家,谢谢!

解决方案 »

  1.   

    你試一下這樣方法
      在ActiveX中定義一方法如
    public sub show (num as Integer)
    Select Case num
               Case 1
               LoadPicture("d:\1.GIF")
               Case 2
               LoadPicture("d:\2.GIF")
               Case 3
               LoadPicture("d:\3.GIF")
               Case 4
               LoadPicture("d:\4.GIF")
               Case 5
               LoadPicture("d:\5.GIF")
               Case 6
               LoadPicture("d:\6.GIF")
      End SelectEnd Sub
      

  2.   

    不好意思漏了點東西你試一下這樣方法
      在ActiveX中定義一方法如
    public sub show (num as Integer)
    Select Case num
               Case 1
              Image1.Picture = LoadPicture("d:\1.GIF")
               Case 2
              Image1.Picture = LoadPicture("d:\2.GIF")
               Case 3
              Image1.Picture = LoadPicture("d:\3.GIF")
               Case 4
              Image1.Picture = LoadPicture("d:\4.GIF")
               Case 5
             Image1.Picture =  LoadPicture("d:\5.GIF")
               Case 6
             Image1.Picture =  LoadPicture("d:\6.GIF")
      End SelectEnd Sub後面把數據傳給它就可以了
      

  3.   

    我认为6个点数的图片应该全部放在你的控件里,然后根据num的值来决定显示哪一张图片,而不应该将图片放置在控件外部,这样不好管理实现路:在控件中建立6个image1图片数组对应6个点数,index 取 1-6, visible=falsePublic Property Get num() As integer
        num = m_num
    End PropertyPublic Property Let num(ByVal New_num As Integer)
        m_num = New_num
        PropertyChanged "num"'在这里加入
     
    if num>=1 and num <=6 then  Image.picture=image1(num).picture  'image为控件要显示的图片
        
    End Property
      

  4.   

    我按xunlbf同志说的方法做了一遍,中间没有添加自己的任何东西。可生成控件后,使用时num属性一直为0,不能改动,更不显示图片,这是怎么回事呢?希望大家和xunlbf同志在百忙中予以指导!
      

  5.   

    lsh6348()  不知道你怎么做的,我一开始给你写是没有测试。不过我刚自己测试一下没有问题。
    ActiveX 我是做成OCX的。再在VB程式中调用。
    OCX那边也就
    Public Sub show1(ss As Integer)
    Select Case ss
                Case 1
              Image1.Picture = LoadPicture("d:\1.GIF")
               Case 2
              Image1.Picture = LoadPicture("d:\2.GIF")
               Case 3
              Image1.Picture = LoadPicture("d:\3.GIF")
               Case 4
              Image1.Picture = LoadPicture("d:\4.GIF")
               Case 5
             Image1.Picture = LoadPicture("d:\5.GIF")
               Case 6
             Image1.Picture = LoadPicture("d:\6.GIF")  End SelectEnd Sub
    没有任何变动VB端
    Private Sub Command1_Click()
    'UserControl21.num = 1
    Dim sss As Integer
    sss = CInt(Text1.Text)
    UserControl21.show1 sss
    End SubUserControl21为应用后OCX控件的名称
    上面stlyl(stlyl(维生素B)) 说的关于图片很有道理,不过我给你讲怎样实现而已.祝你成功啦!要是还不行我就要怀疑"人品问题"咯!哈哈...