如何给自字义控件加上字体属性?

fxy_2002 2005-11-30 04:58:30
我的代码是这样的,将控件加到窗体后,在“属性”窗中可以通过“Font”属性调用到字体选择对话框,但按选择字体“确定”后就返回一个错误:错误的参数号或无效的属性赋值。why?

.....

Private m_Font As StdFont

Public Property Get Font() As StdFont
Set Font = m_Font
End Property

Public Property Let Font(ByVal NewValue As StdFont)
Set m_Font = NewValue
PropertyChanged "Font"
End Property

.....
...全文
233 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fxy_2002 2005-12-01
  • 打赏
  • 举报
回复
果然...原来是 let 与 set 的问题!

呵呵,搞定!结贴。
fishmans 2005-12-01
  • 打赏
  • 举报
回复
stdfont是对象,得用set
韧恒 2005-12-01
  • 打赏
  • 举报
回复
1. ineedchrist已给出了正确答案,将Let换成Set即可。在标准属性对话框中也可以修改的,如果不行请检查你的代码。

2. Font属性当然可以保存。



下面是使用控件接口向导创建的仅有一个Font属性的代码。
Option Explicit
'属性变量:
Dim m_Font As Font


'注意!不要删除或修改下列被注释的行!
'MemberInfo=6,0,0,0
Public Property Get Font() As Font
Set Font = m_Font
End Property

Public Property Set Font(ByVal New_Font As Font)
Set m_Font = New_Font
PropertyChanged "Font"
End Property

'为用户控件初始化属性
Private Sub UserControl_InitProperties()
Set m_Font = Ambient.Font
End Sub

'从存贮器中加载属性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
Set m_Font = PropBag.ReadProperty("Font", Ambient.Font)
End Sub

'将属性值写到存储器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("Font", m_Font, Ambient.Font)
End Sub
ineedchrist 2005-12-01
  • 打赏
  • 举报
回复
不过依然不明白为何不能直接通过VB的标准属性窗体操作该属性,必须使用属性页对话框

你的代码怎么写的我不清楚,我这也没有vb6的开发环境,呵呵,注意看看MSDN。

结贴吧!!^-^
chen2831278 2005-12-01
  • 打赏
  • 举报
回复
帮顶
fxy_2002 2005-12-01
  • 打赏
  • 举报
回复
基本搞定,谢了 ineedchrist。

不过依然不明白为何不能直接通过VB的标准属性窗体操作该属性,必须使用属性页对话框。
ineedchrist 2005-11-30
  • 打赏
  • 举报
回复
另外,在Private Sub UserControl_ReadProperties(PropBag As PropertyBag)中加入
Set Font = PropBag.ReadProperty("Font", Ambient.Font)
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)中加入
PropBag.WriteProperty "Font", Font, Ambient.Font
ineedchrist 2005-11-30
  • 打赏
  • 举报
回复
'返回/设置一个 Font 对象
Public Property Get Font() As Font
Set Font = UserControl.Font
End Property

Public Property Set Font(ByVal New_Font As Font)
Set UserControl.Font = New_Font
PropertyChanged "Font"
End Property
fxy_2002 2005-11-30
  • 打赏
  • 举报
回复
没人说说?

如果从属性页改变这个自定义 font 属性,不出错。但从标准属性窗中改变,就出错。不明白ing...

另外,font 属性是否不能保存?

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧