Foxtable(狐表)用户栏目专家坐堂 → 文字居中,不会了


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

主题:文字居中,不会了

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


加好友 发短信
等级:七尾狐 帖子:1676 积分:15512 威望:0 精华:0 注册:2011/3/29 17:14:00
文字居中,不会了  发帖心情 Post By:2019/9/14 8:20:00 [只看该作者]

需要增加文字居中控制代码

If e.Col.Name = "项目校对" Or  e.Col.Name = "确认复核" Or e.Col.Name = "审核" Or e.Col.Name = "结账" Then
'If e.Col.Name = "审核"  Or e.Col.Name = "核销" Then
e.StartDraw()
Dim msg As String
Dim tl As Integer = e.Text.Length
Select Case tl
Case 2
msg = "  " & e.Text & "  "
Case 3
msg = " " & e.Text & " "
Case Else
msg = e.Text
End Select
If msg = "" Then Return
If tl <= 4 Then
e.Col.Width = 70
Else
e.Col.width = tl*15+1
End If

Dim w As Integer = e.Width - 4
Dim h As Integer = e.Height - 4
Dim x As Integer = e.x + (e.Width - w)/2
Dim n As Pen
Dim fnt As New Font("宋体",12,FontStyle.Bold)
Dim br As Brush

If e.Text.Contains("已") Then
n = New Pen(Color.Green,2)
br = New SolidBrush(color.ForestGreen)
Else
n = New Pen(Color.Red,2)
br = New SolidBrush(color.red)
End If

e.Graphics.DrawRectangle(n,x,e.y + 2,w,h)
e.Graphics.DrawString(msg,fnt,br,x + 1,e.y + 4)
e.Text = ""
e.EndDraw()
End If



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


加好友 发短信
等级:超级版主 帖子:33774 积分:171988 威望:0 精华:8 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/15 15:58:00 [只看该作者]

这个有点麻烦,需要计算文字占用的宽度,试试

dim w2 as integer = e.Graphics.MeasureString(msgfnt).width
x = e.x + (e.Width - w2)/2
e.Graphics.DrawString(msg,fnt,br,x + 1,e.y + 4)

 回到顶部