Foxtable(狐表)用户栏目专家坐堂 → [求助] 还原字体的简便方法


  共有2879人关注过本帖树形打印复制链接

主题:[求助] 还原字体的简便方法

帅哥哟,离线,有人找我吗?
lsy
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
[求助] 还原字体的简便方法  发帖心情 Post By:2015/11/11 10:08:00 [只看该作者]

Dim str As String = CurrentTable.Font.Name & "|" & CurrentTable.Font.Size & "|" & CurrentTable.Font.Style
Output.Show(str)  'str = "宋体|9|0"

CurrentTable.Font = New Font(str.Split("|")(0),CInt(str.Split("|")(1)),CInt(str.Split("|")(2)))

红色部分报错。

可以用动态函数解决问题,但是太啰嗦:
Dim fntstyle() As String = {"FontStyle.Regular","FontStyle.Bold","FontStyle.Italic","FontStyle.Bold Or FontStyle.Italic","FontStyle.Regular Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Underline", _
"FontStyle.Italic Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline","FontStyle.Regular Or FontStyle.Strikeout","FontStyle.Bold Or FontStyle.Strikeout", _
"FontStyle.Italic Or FontStyle.Strikeout","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout","FontStyle.Regular Or FontStyle.Strikeout Or FontStyle.Underline", _
"FontStyle.Bold Or FontStyle.Strikeout Or FontStyle.Underline","FontStyle.Italic Or FontStyle.Strikeout Or FontStyle.Underline","FontStyle.Bold Or FontStyle.Italic Or FontStyle.Strikeout Or FontStyle.Underline"}

Dim code As String
Code = "Dim fnt As Font = New Font(""" & str.Split("|")(0) & """," & CInt(str.Split("|")(1)) & "," & fntstyle(str.Split("|")(2)) & ")" & vbcrlf
Code = Code & "Return fnt"
Functions.Remove("字体")
Functions.Add("字体",Code)
Functions.Complie()
CurrentTable.Font = Functions.Execute("字体")

有没有简便的方法,还原字体?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/11 10:12:00 [只看该作者]

直接保存其值

 

msgbox(FontStyle.Bold Or FontStyle.Italic)
Dim f As FontStyle = 3
CurrentTable.Font = New Font("宋体",20, f)


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/11/11 10:24:00 [只看该作者]

原来如此,谢谢。
Dim str As String = CurrentTable.Font.Name & "|" & CurrentTable.Font.Size & "|" & CurrentTable.Font.Style
Dim style As FontStyle = CInt(str.Split("|")(2))
CurrentTable.Font = New Font(str.Split("|")(0),CInt(str.Split("|")(1)),style)

 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/11/11 10:25:00 [只看该作者]

CurrentTable.Font = CurrentTable.Grid.DefaultFont

 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/11/11 10:34:00 [只看该作者]

以下是引用逛逛在2015/11/11 10:25:00的发言:
CurrentTable.Font = CurrentTable.Grid.DefaultFont


存储字体值,和还原字体值,是两个场景。
存储是以文本的形式,还原不是重现数据表的现有的字体,是以前某个时点存储的字体。

[此贴子已经被作者于2015/11/11 10:36:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1731 积分:11255 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2015/11/11 12:53:00 [只看该作者]

这种最好写一个类实现比较好,函数还是有太多局限性了

 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/11/11 14:45:00 [只看该作者]

 

 

理解错了?

 

 

 

1、  字体和文本互换

 

'获取字体并转文本

Dim f As font = CurrentTable.Font

Dim fc As FontConverter = New FontConverter()

Dim strf As String = fc.ConvertToInvariantString(f)

Output.show( strf)

 

'文本转字体

 

Dim str As String = "宋体-PUA, 12pt, style=Bold, Italic"

Dim fc As FontConverter = New FontConverter()           

Dim f As Font = fc.ConvertFromString(str)

CurrentTable.Font = f


 回到顶部
帅哥哟,离线,有人找我吗?
lsy
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2015/11/11 15:46:00 [只看该作者]

以下是引用逛逛在2015/11/11 14:45:00的发言:

 

 

理解错了?

 

 

 

1、  字体和文本互换<!--?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /-->

 

'获取字体并转文本

Dim f As font = CurrentTable.Font

Dim fc As FontConverter = New FontConverter()

Dim strf As String = fc.ConvertToInvariantString(f)

Output.show( strf)

 

'文本转字体

 

Dim str As String = "宋体-PUA, 12pt, style=Bold, Italic"

Dim fc As FontConverter = New FontConverter()           

Dim f As Font = fc.ConvertFromString(str)

CurrentTable.Font = f



是个很好的方法。

谢谢!


 回到顶部