【问题标题】:vb.net print datagridview column alignmentvb.net 打印 datagridview 列对齐
【发布时间】:2013-11-19 10:30:53
【问题描述】:

我的网格显示前 3 列左对齐,后 4 列右对齐。

使用此代码e.Graphics.DrawString(Stock.gdColours(j, i).Value, f, Brushes.Black, x, y + 4)

所有列都左对齐打印。 因为我需要将第 3 列向前对齐,所以我添加了:

If j >2 Then 
    sf.Alignment = StringAlignment.Far 
Else 
    sf.Alignment = StringAlignment.Near

e.Graphics.DrawString(Stock.gdColours(j, i).Value, f, Brushes.Black, x, y + 4, sf)

但结果是对齐是正确的,但是第 3 列以后的列都从第 2 列开始出现了。

我们将不胜感激。

【问题讨论】:

  • 我已经格式化了你的代码,对吗?似乎缺少EnfIF...
  • @DontVoteMeDown 检查您的评论,如果不是 enfif 则结束
  • @SATSON 很抱歉,我已经有好几年没碰 vb 了。反正你懂的……
  • 在 e.graphics 之前有一个 'end if' - 我只是错过了复制它。

标签: vb.net printing datagridview alignment


【解决方案1】:

对我有用的答案如下。我使用 X1、X2 和 X3 作为近对齐字符串的列位置。当我将中间列更改为远对齐时,我将中间列的 X 位置设置为正好在第三列的左侧。

         For intRow As Integer = 0 To _aryTopTable.GetLength(0) - 1
            'Draw each row element
            format.Alignment = StringAlignment.Near
            e.Graphics.DrawString(_aryTopTable(intRow, 0), _tableFont, Brushes.Black, X1, Y, format)
            format.Alignment = StringAlignment.Far
            e.Graphics.DrawString(_aryTopTable(intRow, 1), _tableFont, Brushes.Black, X3 - 10, Y, format)
            format.Alignment = StringAlignment.Near
            e.Graphics.DrawString(_aryTopTable(intRow, 2), _tableFont, Brushes.Black, X3, Y, format)
            'Advance Y
            Y = Y + _tableFont.Height + Yp
        Next

【讨论】:

  • 代码没有必要这么“标签化”。
猜你喜欢
  • 2013-03-16
  • 1970-01-01
  • 1970-01-01
  • 2011-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多