使用+ =和vbCrLF格式化问题

时间:2016-01-18 00:05:31

标签: vb.net formatting

此代码包含在带有按钮的文本框中。 在测试中,一切都是肉汁,除了当你点击Button1时,它总是从第二行而不是第一行开始抛出数据。单击Button2会将其抛给第一行,但它会破坏应用程序的目的。 Button1是一个开始按钮,Button2是一个停止按钮。我知道它与+ =有关,但只是把它设置为=拧紧所有东西。有什么想法吗?

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Timer1.Start()
    TextBox1.Text += Date.Now.ToString("H:mm")
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim space As String = "  "
    Timer1.Start()
    TextBox1.Text += " " + Date.Now.ToString("H:mm") & vbCrLf
End Sub

1 个答案:

答案 0 :(得分:0)

如果您使用TextBox设置为多行,则可以使用TextBox的AppendText方法,使用String.Format或连接字符串值以及将Environment.NewLine附加到特定TextBox到所有行。

e.g。

TextBox1.AppendText(
    String.Format(" {0}{1}",
                  Now.ToString("H:mm"),
                  Environment.NewLine))

如果定位Framework 3.5或更高版本,我们还可以通过采取步骤并创建语言扩展方法来实现这一目标

Public Module LanguageExtensions
    <System.Diagnostics.DebuggerStepThrough()>
    <System.Runtime.CompilerServices.Extension()>
    Public Sub AppendHoursMinutes(ByRef sender As TextBox)
        sender.AppendText(
            String.Format(" {0}{1}",
                          Now.ToString("H:mm"),
                          Environment.NewLine))
    End Sub
End Module

使用上面的扩展名

TextBox1.AppendHoursMinutes

我们还可以创建一个没有回车符附加的方法

public Module LanguageExtensions
    <System.Diagnostics.DebuggerStepThrough()>
    <System.Runtime.CompilerServices.Extension()>
    Public Sub AppendHoursMinutes(ByRef sender As TextBox)
        sender.AppendText(
            String.Format(" {0}{1}",
                          Now.ToString("H:mm"),
                          Environment.NewLine))
    End Sub

    <System.Diagnostics.DebuggerStepThrough()>
    <System.Runtime.CompilerServices.Extension()>
    Public Sub AppendHoursMinutesSameLine(ByRef sender As TextBox)
        sender.Text = String.Concat(sender.Text, " ", Now.ToString("H:mm"))
    End Sub
End Module