以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=46700)

--  作者:dqlgood
--  发布时间:2014/2/27 11:24:00
--  [求助]
用代码如何在不改变字体大小的情况下增加下划线?
Dim kaz As String = "Label01,Label02,Label03,Label04,Label05"
For Each ka As String In kaz.split(",")
    e.form.Controls(ka).Font = New Font("宋体",9,FontStyle.Underline)
Next
Label01,Label02,Label03,Label04,Label05相同字体,相同字号的情况下可以,在不同字体或不同字号的情况下,如何独立设计Underline属性

--  作者:Bin
--  发布时间:2014/2/27 11:25:00
--  
e.form.Controls(ka).Font = New Font(e.form.Controls(ka).Font.name,e.form.Controls(ka).Font.Size,FontStyle.Underline)
--  作者:lsy
--  发布时间:2014/2/27 11:30:00
--  
以下是引用Bin在2014-2-27 11:25:00的发言:
e.form.Controls(ka).Font = New Font(e.form.Controls(ka).Font.name,e.form.Controls(ka).Font.Size,FontStyle.Underline)

e.form.Controls(ka).Font = New Font(e.form.Controls(ka).Font.name,CSng(e.form.Controls(ka).Font.Size),FontStyle.Underline)

 

字体大小是变量的时候,要转换一下,不然的话,如果大小是小数,就会报错。

这是本人的教训。

[此贴子已经被作者于2014-2-27 11:30:50编辑过]

--  作者:Bin
--  发布时间:2014/2/27 11:32:00
--  
多谢分享经验
--  作者:dqlgood
--  发布时间:2014/2/27 11:56:00
--  
不行,如图
图片点击可在新窗口打开查看此主题相关图片如下:截图.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:截图1.png
图片点击可在新窗口打开查看


--  作者:Bin
--  发布时间:2014/2/27 12:00:00
--  
Dim fnt As New Font(e.form.Controls(ka).Font.name,CSng(e.form.Controls(ka).Font.Size),FontStyle.Underline)
e.form.Controls(ka).Font=fnt

--  作者:dqlgood
--  发布时间:2014/2/27 14:08:00
--  
还是不能收缩转换,最后如下修改解决了。
Dim kaz As String = "Label01,Label02,Label03,Label04,Label05"
For Each ka As String In kaz.split(",")
    Dim fnt As String = e.form.Controls(ka).Font.name
    Dim n As Object = e.form.Controls(ka).Font.Size
    e.form.Controls(ka).Font= New Font(fnt,n,FontStyle.Underline)
Next

--  作者:lsy
--  发布时间:2014/2/27 14:54:00
--  

本来是明白的,绕糊涂了:

控件变量字体名称、控件变量字体大小,都要转换:

Dim kaz As String = "Label01,Label02,Label03,Label04,Label05"
For Each ka As String In kaz.Split(",")   
    Dim fnt As New Font(CStr(e.Form.Controls(ka).Font.Name),CSng(e.Form.Controls(ka).Font.Size),FontStyle.Underline)
       e.Form.Controls(ka).Font = fnt
Next
[此贴子已经被作者于2014-2-27 15:06:12编辑过]

--  作者:dqlgood
--  发布时间:2014/2/27 17:36:00
--  

1、Dim fnt As New Font(e.form.Controls(ka).Font.name,CSng(e.form.Controls(ka).Font.Size),FontStyle.Underline)


2、Dim fnt As New Font(CStr(e.Form.Controls(ka).Font.Name),CSng(e.Form.Controls(ka).Font.Size),FontStyle.Underline)


3、    Dim fnt As String = e.form.Controls(ka).Font.name

          Dim n As Object = e.form.Controls(ka).Font.Size
          e.form.Controls(ka).Font= New Font(fnt,n,FontStyle.Underline)


我是菜鸟,因“1”不能通过,又不了解"CSng,"CStr”函数,故此没能写成“2”的正确方式;

采取了最笨的办法"3",先获取原数据再变换,经测试与“2”效果相同。

谢谢指点,又学了一招!