首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB控件属性怎么出现系统所有字体类型

2012-12-14 
VB控件属性如何出现系统所有字体类型?制作VB控件,希望有个FontName属性能列出当前系统所有字体名点属性窗

VB控件属性如何出现系统所有字体类型?
制作VB控件,希望有个FontName属性能列出当前系统所有字体名
点属性窗口能出来一个下拉菜单选某个系统字体,注意是下拉菜单
看到别人的控件实现这个效果,请问怎么实现?
[解决办法]
可以把现成的控件加进来
[解决办法]
我的意思是点FontName这个属性时,就像点了枚举型的属性一样,会出现一个下拉列表,但当前系统的所有字体怎么能在做属性的时候枚举出来?
[解决办法]
新建一个窗体,窗体上放两个控件,list1和command1
程序运行,单击命令按钮,将所有系统字体名称添加到列表框。代码如下:


Private Sub Command1_Click()
 Dim i As Integer
 For i = 0 To Screen.FontCount - 1
     List1.AddItem Screen.Fonts(i)
 Next i
End Sub
[解决办法]
去年结贴不好,原来的结贴是不是csdn自动给你结的?
[解决办法]
回复:jjhhgg1111

我说的是制作控件的属性
[解决办法]
把我给的加到你程序里不就可以了
[解决办法]
回复:jjhhgg1111
你是没做过控件吧,知道什么叫做控件么
[解决办法]
你在控件里面放个Label的数组,数组的数量调整为字体的数量,控件的字体调整为对应的字体
放置一个滚动条。
滚动条滚动是,调整需要显示的几个Label的位置到显示位置。

或者就用有限的几个Label,拖动滚动条时,把滚动条对应的字体和接下了的几个字体赋值给你的价格label


[解决办法]
都是所问非所答,感觉这问题不算是什么大的技术问题啊。VB的属性窗口里能加Label标签?多可笑啊。
至少问的也是Property Let中应该写什么来实现的。
这里真的没高手了么?
[解决办法]

引用:
都是所问非所答,感觉这问题不算是什么大的技术问题啊。VB的属性窗口里能加Label标签?多可笑啊。
至少问的也是Property Let中应该写什么来实现的。
这里真的没高手了么?
别人好心回复了,有什么可笑的,你是否应想想,你有没有把问题描述清楚.
[解决办法]
做个属性页试试
[解决办法]
引用:
新建一个窗体,窗体上放两个控件,list1和command1
程序运行,单击命令按钮,将所有系统字体名称添加到列表框。代码如下:


Private Sub Command1_Click()
 Dim i As Integer
 For i = 0 To Screen.FontCount - 1
  List1.AddItem Screen.Fonts(i)
 Next i
En……

这是最简单的方法。除此以外,还可以用API!


[解决办法]

我看见别人的控件里有一个叫FontName的属性,在“VB的属性栏里”这个FontName是个下拉菜单,点一下就会出现当前系统中所有的字体名。按理来说枚举的类型是会出现下拉的效果的,偏偏这个属性,我用VB的对象浏览器查询,发现竟然是String类型的。众所周知,枚举类型是可以从对象浏览器中看到的,这个FontName只是一个String类型。即便是枚举,也没法枚举出每台机器上的所有字体名。
[解决办法]
属性页会有神奇的效果,让VB属性栏里的FontName列出当前系统的所有字体?
属性页的我会做,我想了解属性栏中的怎么做。
引用:
做个属性页试试

[解决办法]

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
改为
Private Sub UserControl_ReadProperties(PropBag As ListBox)
然后参考#3楼给PropBag.AddItem 

试试,仅供参考
[解决办法]
有接近10年没折腾这个了,见笑!

引用:
属性页会有神奇的效果,让VB属性栏里的FontName列出当前系统的所有字体?
属性页的我会做,我想了解属性栏中的怎么做。



引用:

做个属性页试试


[解决办法]
引用:

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
改为
Private Sub UserControl_ReadProperties(PropBag As ListBox)
然后参考#3楼给PropBag.AddItem 

试试,仅供参考

你好,这个好像不行……
[解决办法]
Private Sub Combo1_Click()
Label1.Font = Combo1.Text
End Sub

Private Sub Form_Load()
Dim i As Integer
 For i = 0 To Screen.FontCount - 1
  Combo1.AddItem Screen.Fonts(i)
 Next i
End Sub

[解决办法]
记得应该是在UserControl页面,选择“工具-过程属性”菜单,再点击“高级”,然后其中绑定属性页面....手边没vb,具体看MSDN...
[解决办法]
引用:
Private Sub Combo1_Click()
Label1.Font = Combo1.Text
End Sub

Private Sub Form_Load()
Dim i As Integer
 For i = 0 To Screen.FontCount - 1
  Combo1.AddItem Screen.Fonts(i)
 Next i
End Sub

你好,控件属性中不会用到Form_Load事件。
[解决办法]
对象浏览器对于这个控件的这个属性的描述:FontName As String。不是枚举类型。

如图所示,也不可能是枚举。
[解决办法]
引用:
记得应该是在UserControl页面,选择“工具-过程属性”菜单,再点击“高级”,然后其中绑定属性页面....手边没vb,具体看MSDN...

你好,确实可以绑定到属性页上,但是并不是在属性栏中出现下拉菜单,而是出现“…”的按钮,点一下调出属性页。
[解决办法]
引用:
对象浏览器对于这个控件的这个属性的描述:FontName As String。不是枚举类型。

如图所示,也不可能是枚举。

哦,发现我还是弄错了....这个效果还真不知道怎么做,似乎枚举可能以弄吧,有空想想....要干活了...
[解决办法]
引用:
引用:

记得应该是在UserControl页面,选择“工具-过程属性”菜单,再点击“高级”,然后其中绑定属性页面....手边没vb,具体看MSDN...

你好,确实可以绑定到属性页上,但是并不是在属性栏中出现下拉菜单,而是出现“…”的按钮,点一下调出属性页。


你没理解我的意思,是要先按具体功能自己定义属性页,然后再绑定....
自定义属性页的添加和加添窗体啊类模块等等一样,在工程中右键选择即可....
先看书吧,最近忙,如果有时间,或许会写个示例....
[解决办法]
也许VB6.0就没有方法实现,但这个控件是用VB写的,至于是哪个版本我还不确定。
[解决办法]
String类型还会出现枚举类型的效果,我觉得只能是某种方式的绑定,或者拿一段程序在Readproperty事件中枚举出来,不过之前还没有见到过类似的例子,不知道怎么去实现。
[解决办法]
出去一周,回来发现,楼主这个问题还没解决,高手都到哪去了,就让我等菜鸟郁闷,什么世道
[解决办法]
该回复于2011-02-26 08:34:18被版主删除
[解决办法]
其实你并不需要这样做,可以直接设计一个Font属性,当单击这个属性时,就可以出现字体对话框,很方便,代码如下:

Private Sub UserControl_InitProperties()
Set Font = New StdFont
End Sub

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


Public Property Set Font(NewFont As StdFont)
Set gFont = NewFont
Set Label1.Font = NewFont
PropertyChanged "Font"
End Property


当然,如果你真的要枚举字体的话,API有一个函数可以枚举可用的字体,但我也不太清楚怎么用,自己看看去吧。
[解决办法]
该回复于2011-02-28 15:39:41被版主删除
[解决办法]
还在思考这个问题,这个控件应该是用VC++6.0写的。

热点排行