Vb.net 使用+;=和vbCrLF

Vb.net 使用+;=和vbCrLF,vb.net,formatting,Vb.net,Formatting,此代码包含在带有按钮的文本框中。 在测试中,一切都很重要,除了当你点击按钮1时,它总是从第二行而不是第一行开始抛出数据。单击按钮2会将其扔到第一行,但它会破坏应用程序的用途。按钮1为开始按钮,按钮2为停止按钮。我知道它与+=,但只是把它设置为=会把一切搞砸。有什么想法吗 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick End Sub Private Sub Button1_Click(s

此代码包含在带有按钮的文本框中。 在测试中,一切都很重要,除了当你点击按钮1时,它总是从第二行而不是第一行开始抛出数据。单击按钮2会将其扔到第一行,但它会破坏应用程序的用途。按钮1为开始按钮,按钮2为停止按钮。我知道它与+=,但只是把它设置为=会把一切搞砸。有什么想法吗

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

如果将TextBox设置为具有多行,则可以使用TextBox的AppendText方法,使用String.Format或串联字符串值将其与Environment.NewLine一起附加到特定的TextBox中,并将其附加到所有行中

e、 g

如果目标是Framework3.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
我们还可以创建一个不带回车的追加方法

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
公共模块语言扩展
公共子附件HoursMinutes(ByRef发件人作为文本框)
sender.AppendText(
String.Format(“{0}{1}”,
现在.ToString(“H:mm”),
环境(新线)
端接头
公共子附录HoursMinuteSameline(ByRef sender作为文本框)
sender.Text=String.Concat(sender.Text,”,Now.ToString(“H:mm”))
端接头
端模块

+=
不是vba。你需要把它说清楚
TextBox1.Text=TextBox1.Text&Date.Now.ToString(“H:mm”)
Hmmm,我已经试过了,同样的问题。它仍然从文本框的第二行开始,也许它违背了目的,但目的是什么?“空间”变量会拼写什么魔法咒语?为什么单击按钮1时不附加vbCrLf??为什么在Button2中添加空格前缀是个好主意???为什么有一个计时器什么也不做?这是随机代码,它做随机的事情,花一个小时思考应该发生什么。你是对的,汉斯,那里有一些无用的代码,谢谢你鼓励我退后一步。但它仍然在困扰着我,为什么
Private Sub Button1\u Click(发送者作为对象,例如作为EventArgs)处理Button1.Click Timer1.Start()TextBox1.Text=TextBox1.Text&Date.Now.ToString(“H:mm”)End Sub(结束子项)
将添加到按钮单击时的第二行,而不是第一行。请确保textbox.text属性为空。。清除它或将textbox1.text=”“添加到表单加载中。听起来你可能有一个新词。
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