【问题标题】:How to add text after every textbox line in VB.NET如何在 VB.NET 中的每个文本框行之后添加文本
【发布时间】:2018-04-30 20:21:48
【问题描述】:

我到处搜索,我找不到方法。 我想找到一种在每个文本框行之后添加文本的方法,但我找不到这样做的方法。 我有一个文本框1:

example1
example2
example3
And so on...

另一个带有@gmail.com 的文本框2

我希望将 textbox2 添加到 textbox1 中每一行的末尾,例如:

example1@gmail.com
example2@gmail.com
example3@gmail.com
And so on...

有什么办法吗?提前致谢。

【问题讨论】:

  • 您是否尝试循环遍历 Lines 集合?
  • 我在 vb.net 中有点菜鸟,我不知道...我只需要它来为我完成一项任务,而不是我自己做。请不要评判...我真的很绝望...
  • 这不是 Stack Overflow 的工作方式。我们可以提供帮助,但您必须半途而废。发布您尝试的代码。
  • 我不明白哥们,但我似乎真的无法解决它...感谢您的诚实回答,但我想我会放弃我真的不能单独做..再次感谢.. .

标签: vb.net visual-studio


【解决方案1】:

此解决方案简洁,并删除了空行。

Private Function appendTextToOtherTextLines(textToAppend As String, otherText As String) As String
    Return String.Join(Environment.NewLine, otherText.
                       Split(Environment.NewLine.ToArray(), StringSplitOptions.RemoveEmptyEntries).
                       Select(Function(s) s & textToAppend))
End Function

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox3.Text = appendTextToOtherTextLines(TextBox2.Text, TextBox1.Text)
End Sub

这是您的示例工作

如果你有一个空行,它会在结果字符串中被删除

当然,你也可以覆盖原来的文本框,但注意不要点击按钮两次!

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Text = appendTextToOtherTextLines(TextBox2.Text, TextBox1.Text)
End Sub

其他选项是一个事件处理程序,当在新行的末尾按回车时,它会自动发生这种情况。这仅在您主动手动输入行时才有用。

Private Sub TextBox1_KeyUp(sender As Object, e As KeyEventArgs) Handles TextBox1.KeyUp
    If e.KeyCode = Keys.Enter Then
        TextBox1.Text = TextBox1.Text.Substring(0, TextBox1.Text.Length - 2) & TextBox2.Text & Environment.NewLine
        TextBox1.SelectionStart = TextBox1.Text.Length
    End If
End Sub

(此选项在按 Enter 时需要一些纪律)

【讨论】:

    【解决方案2】:

    这是完整的工作代码。尽情享受吧!!!!

      Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            If Me.TextBox1.Lines.Length = 0 Then
                MsgBox("Please enter some data in textbox1")
                Exit Sub
            End If
            '---------------------------
            Dim b(Me.TextBox1.Lines.Length - 1) As String
    
            Dim i As Integer = 0
            For Each a As String In Me.TextBox1.Lines
                b(i) = a + Me.TextBox2.Text
                i = i + 1
            Next
            '-----------------
            Me.TextBox1.Clear()
            Me.TextBox1.Lines = b
        End Sub
    

    【讨论】:

    • 请解释您的代码。通过仅转储可复制粘贴的代码,OP 不会学到任何东西,而且很可能任何未来的读者也不会学到任何东西。 Stack Overflow 并不是一种编码服务。目标是真正提问者一些东西。
    • 我的答案中的每一件事都是显而易见的,所有的代码都很清楚,我的目标是帮助人们。我从 1999 年开始担任高中计算机老师所以我知道如何回答以获得最佳结果! !
    • 对您来说显而易见的事情可能对每个人都不是显而易见的。看到 OP 自己无法解决这个问题(而且因为他甚至在评论中明确表示他是新手),他可能根本不理解它,更不用说其他发现这个问题的新人了。在 SO 的这些年里,我了解到大多数新手实际上确实很难理解循环和数组的概念。
    • 你为什么选择 For Each 却增加一个整数。不妨改用 For Loop 枚举器。如果您替换 Lines 集合,则不必清除该框。
    • 我并不打算在我的 cmets 中表现得刻薄或听起来刻薄,但是当通过互联网回答问题时,人们会失去重要的交流方式,例如肢体语言和讲话中的语气变化,这让人们更难与面对面交谈时相比,彼此了解。因此,一个人在互联网上说的东西对其他人来说更难理解和解释。我只是想帮助您进一步帮助 OP,以确保 理解它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-04
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多