【问题标题】:working with strings and VbCrLf in vb.net在 vb.net 中使用字符串和 VbCrLf
【发布时间】:2012-03-10 09:38:25
【问题描述】:

我需要一个可用于页眉的字符串。问题是当我使用 vbcrlf 时,我不知道如何回来写。 示例:

dim MyStr As String = "Amount to be" & vbcrlf & "Deducted in This Month" & VbCrLf

MyStr &= "Amount Paid Last" & VbCrLf & "Month" & VbCrLf

这给了我输出

Amount to be
Deducted in This Month
Amount Paid Last
Month

'---我想要这样的输出

Amount to be                               Amount Paid Last
Deducted in This Month                     Month

'请帮我找出解决办法。

【问题讨论】:

  • 你在做什么?您使用任何变量来表示月份和金额?
  • 这仅用于文本文件的标题.....我有数量的变量
  • 您的输出正是您构建它的方式。字符串没有附加值。并且您以错误的顺序附加到预期的输出
  • 所以你想要,"要支付的金额>,本月最后扣除的>" 你应该使用像“Amount to be Paid=>,本月最后一次扣除= >"
  • 我要标题------ 本月扣除金额----- 上个月支付的金额........(注意金额为上个月扣除的金额很长,所以我必须把这个包起来……但是在把上个月支付的金额包在第二行之后。)

标签: vb.net visual-studio-2010 vb.net-2010


【解决方案1】:

在这种情况下,您应该始终使用复合格式。请务必在MSDN Library 中阅读它。这里要利用的一个关键特性是它能够对齐文本并用空格填充它。格式说明符应类似于 {n,w:c} 其中 n 是参数编号,w 是生成的字符串的宽度,c 是所需的格式。使用负值 w 将文本左对齐。

所以代码如下:

    Dim ToBePaid As Decimal = 1.23
    Dim Deducted As Decimal = 0.04
    Dim PaidLast As Decimal = 2.45
    Dim PayDate As DateTime = DateTime.Now
    Dim MyStr = String.Format("{0,-10:C}{1,20:C}", ToBePaid, PaidLast) + vbCrLf + _
                String.Format("{0,-10:C}{1,20:MMMM}", Deducted, PayDate)
    Console.WriteLine(MyStr)

产生这个输出:

$1.23                    $2.45
$0.04                    March

只有当您使用使用固定间距字体的文件查看器查看文件时,它才会看起来正确对齐。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多