下面代码
Private Sub Command1_Click()
  dlgfont.Flags = cdlCFBoth
  
  Text1.FontName = dlgfont.FontName
  
End Sub
中 Text1.FontName = dlgfont.FontName为什么是无效属性值??

解决方案 »

  1.   

    dlgfont是什么控件,你能保证dlgfont.fontname一定可以在text中合法吗?字体相关的属性只能设置为真正存在的字体的值
      

  2.   

    Text1.FontName = dlgfont.FontName为什么是无效属性值??
    ----------------------------
    估计是dlgfont.FontName值为空,你赋值前加个判断应该就可以If Trim(dlgfont.FontName) <> "" Then Text1.FontName = dlgfont.FontName
      

  3.   

    FontName 属性
          返回或设置在控件中或在运行时画图或打印操作中,显示文本所用的字体。注意 包含 FontName 属性是为了和 CommonDialog 控件一起使用,以及与先前的 Visual Basic 版本兼容。对于其它的功能,请使用新的 Font 对象属性(对 CommonDialog 控件不可用)。
      

  4.   

    谢谢朋友,如果我想改变TEXT控件中字体的名称、大小等该如何写代码呢??谢谢
      

  5.   

    加判断也没用, CommonDialog 控件的fontname估计跟一般控件的用法不同的,是取不到值的
      

  6.   

    一般来说,用 FontSize、FontBold、FontItalic、FontStrikethru 和 FontUnderline 属性来设置大小和样式属性
    Private Sub Command1_Click()
       
       Text1.FontName = "宋体"
       
       Text1.FontSize = 1
    End Sub
      

  7.   

    谢谢楼上的朋友,不过你这样只能是使用一种字体和大小,不能有更多的选择。我想要的是更多的,就象WORD中的字体对话框那样。
      

  8.   

    估计有些第三方控件可以实现你的目的,不过最简单的就比如字体把,你在form上加个combobox框,在combo1.list中添加字体,然后在combo1.click中写
    Private Sub Combo1_Change()
        Text1.FontName = Combo1.Text
    End Sub
      

  9.   

    Private Sub Command1_Click() 
        dlgfont.Flags = cdlCFBoth
        dlgfont.FontName = "宋体"   '给字体对话设置默认字体,用户可以根据需要自己选择字体
        dlgfont.ShowFont  '打开对话框
        If Trim(dlgfont.FontName) <> "" Then Text1.FontName = dlgfont.FontName  '如果设置的字体是有效字体则给Text1设置字体属性(如果用户自己填了一个无效的字体,则dlgfont.FontName返回空值)
    End Sub