2016-01-18 1 views
-2

Этот код включен в текстовое поле с кнопками. При тестировании все подсластино, за исключением того, что при нажатии кнопки Button1 он всегда выдает данные, начиная со второй строки, а не первой. Нажатие кнопки Button2 выведет его в первую строку, но это победит цель приложения. Button1 - кнопка «Пуск», а Button2 - кнопка останова. Я знаю, что это имеет какое-то отношение к + =, но просто устанавливает его на = все винты. Есть идеи?Проблема с форматированием с + = и vbCrLF

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 
+0

'+ =' не vba. вам нужно прописать это. 'TextBox1.Text = TextBox1.Text & Date.Now.ToString (" H: mm ")' –

+0

Хммм, я пробовал эту и ту же проблему. Он все еще начинается с 2-й строки текстового поля – user3341951

+0

Возможно, это побеждает цель, но что это * цель? Какое волшебное заклинание совершает заклинание «пробел»? Почему вы не добавляете vbCrLf при нажатии кнопки Button1? Почему это хорошая идея, чтобы префикс пространства в Button2 ??? Почему таймер ничего не делает? Это случайный код, он делает случайные вещи, тратит час, думая о том, что * должно произойти. –

ответ

0

Если вы используете TextBox набор, чтобы иметь несколько строк можно использовать AppendText метод TextBox, используя String.Format или конкатенации строковых значений для добавления к конкретному TextBox вместе с Environment.NewLine всем линией.

например.

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 

 Смежные вопросы

  • Нет связанных вопросов^_^