编一ActiveX控件,有UserControl1控件窗体和PropertyPage1属性叶窗体
控件中填加了两个Label控件,自定义两者的Font属性相同,为UserControl1的Font属性
Public Property Get Font() As Font
    Set Font = Label1(0).Font
End PropertyPublic Property Set Font(ByVal New_Font As Font)
    Set Label1(0).Font = New_Font
    Set Label1(1).Font = New_Font
        Call UserControl_Resize
    PropertyChanged "Font"
End Property
在PropertyPage1中如何调用该Font属性?
    label2.font = UserControl1.Font 无效显示UserControl1变量未定义.请问怎么获得UserControl1的Font属性?
是做毕业设计,拜托各位帮帮忙

解决方案 »

  1.   

    set label2.font = UserControl1.Font
      

  2.   

    chewinggum(口香糖) 
         同样显示UserControl1变量未定义.
      

  3.   

    我想我知道你要问的是什么问题。
    我以前遇到过这样的问题,是在做窗体子类化的时候。
    我不知道该怎么解决,用了一些很变通的办法
    在通用模块里加一个变量pFont用来记录,
    PropertyPage1改变后,修改pFont,然后UserControl1里面读取
      

  4.   

    wachel(大脚) 
           我是要在属性页里加载一个label1,让他的font属性为usercontrol1内的自定义的Font属性,但通过Usercontrol1引用时说usercontrol未定义,模块我也建过,仍然不成功.
      

  5.   

    在模块里声明pFont
    在Public Property Set Font(ByVal New_Font As Font)里设置pFont=new_font在属性页的PropertyPage_Initialize()里设置label1.font=pfont
      

  6.   

    在模块中的pFont怎么声明?
    dim pFont AS Font
    不成功,好象不能声明成Font类型.我自定义类型,在模块中申明
    Public Type MyFont
    '    MBold As Boolean
    '    MCharset As Integer
    '    MItalic As Boolean
    '    MName As String
    '    MSize As Integer
    '   MStrikeTrough As Boolean
    '   MUnderline As Boolean
    '    MWeight As Integer
    'End Type
    Dim intFont As MyFont
    通过在Public Property Set Font(ByVal New_Font As Font)中将其属性一一对应赋值,
    'With intFont
        '    .MBold = New_Font.Bold
        '    .MCharset = New_Font.Charset
        '    .MItalic = New_Font.Italic
        '    .MName = New_Font.Name
        '    .MSize = New_Font.Size
        '    .MStrikeTrough = New_Font.Strikethrough
        '    .MUnderline = New_Font.Underline
        '    .MWeight = New_Font.Weight
        'End With
    在Propage_Initialize()中引用intFont,
    With Label1.Font
            .Bold = intFont.MBold
            .Charset = intFont.MCharset
            .Italic = intFont.MItalic
            .Name = intFont.MName
            .Size = intFont.MSize
            .Strikethrough = intFont.MStrikeTrough
            .Underline = intFont.MUnderline
            .Weight = intFont.MWeight
        End With
    但仍然显示intFont变量未定义.
      

  7.   

    '模块中
    Public pFont As New StdFont
    ---------------------------------
    'usercontrol中:
    Public Property Get font() As StdFont
        Set font = pFont
    End PropertyPublic Property Set font(ByVal vNewValue As StdFont)
        Set pFont = vNewValue
    End Property------------------------------------------------
    'PropertyPage中:
    Private Sub PropertyPage_GotFocus()
        Set Label1.font = pFont
    End Sub
      

  8.   

    照着你说的做了,但打开Usercontrol属性页显示的字体还是没有变.
    把set label1.font=pFont加到Propage_Initialize()中却出现另外一种字体,真是郁闷.
      

  9.   

    我试过了,完全可以,
    你在PropertyPage_GotFocus()中试试
      

  10.   

    wachel(大脚):
    OK!给分了
    到http://community.csdn.net/Expert/topic/4032/4032760.xml?temp=.6971399
    去发个贴,我把那的分一起给你