我在visual basic textbox中遇到问题,所以我的实际问题是我有一个 Multiline textbox1包含FirstName =" JOHN"在一行和LastName =" SMITH"在换行符中,我想仅在单独的单行文本框2中转移JOHN,而在其他单行 textbox3中转移SMITH。 我希望在点击复制按钮时发生这种情况。 像FirstName,LastName这样的textbox1的lefthanside保持不变,而像JOHN,SMITH这样的右边正在改变。 我创建了一个单独的函数,我已经尝试过
Public Class Form1
Dim itemsInTextBox As String() = TextBox1.Text.Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim firstName As String = itemsInTextBox(0).Split("=".ToCharArray)(1)
Dim secondName As String = itemsInTextBox(1).Split("=".ToCharArray)(1)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox2.Text = firstName
TextBox3.Text = secondName
End Sub
结束班
这里是我想要完成的截图的链接。 http://tinypic.com/r/2mcev5w/8 提前致谢
答案 0 :(得分:0)
我认为您可以通过新行将文本与文本框分开。类似的东西:
Dim itemsInTextBox as String() = TextBox1.Text.Split(vbCrLf.toCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim firstName as String = itemsInTextBox(0).Split("=".toCharArray)(1)
Dim secondName as String = itemsInTextBox(1).Split("=".toCharArray)(1)
这假设文本框中的行由新行分隔。如果它被其他东西分开,那就把它放在split方法中。这也保留了引号(你想要吗?)
编辑:用于设置其他文本框
TextBox2.Text = firstName
TextBox3.Text = secondName
EDIT2:您必须在按钮点击时创建这些变量。如果全局执行,它将在TextBox1存在之前运行。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim itemsInTextBox As String() = TextBox1.Text.Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim firstName As String = itemsInTextBox(0).Split("=".ToCharArray)(1)
Dim secondName As String = itemsInTextBox(1).Split("=".ToCharArray)(1)
TextBox2.Text = firstName
TextBox3.Text = secondName
End Sub
答案 1 :(得分:0)
您的样本和说明不同。在您的示例中,您使用FIRSTNAME = JOHN,并在您的描述中使用first-name =“john”,这是非常不同的。
让我们使用您的样品。你的测试应该是这样的。
TextBox2.Text = GetValue("FIRSTNAME=JOHN" & vbcrlf & "LASTNAME=SMITH")
TextBox3.Text = GetValue("FIRSTNAME=JOHN" & vbcrlf & "LASTNAME=SMITH")
你试试这样,你会发现它没有返回正确的信息。
您必须拆分每一行,然后再使用=符号再次拆分这些行。
Function GetValue(ByVal data As String, ByVal key As String) As String
Dim lines() As String = data.Split(Chr(10))
For Each line As String In lines
line = line.Trim()
Dim subData() As String = line.Split("="c)
If subData(0) = key Then
Return subData(1)
End If
Next
Return ""
End Function
Sub Main()
Dim data As String
data = "FIRSTNAME=JOHN" & Environment.NewLine & "LASTNAME=SMITH"
Console.WriteLine(GetValue(data, "FIRSTNAME"))
Console.WriteLine(GetValue(data, "LASTNAME"))
Console.ReadLine()
End Sub
答案 2 :(得分:0)
只需将itemsList的声明移动到副本的子目录中即可 编辑:还需要移动字符串的声明
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim itemsInTextBox As String() = TextBox1.Text.Split(vbCrLf.ToCharArray, StringSplitOptions.RemoveEmptyEntries)
Dim firstName As String = itemsInTextBox(0).Split("=".ToCharArray)(1)
Dim secondName As String = itemsInTextBox(1).Split("=".ToCharArray)(1)
TextBox2.Text = firstName
TextBox3.Text = secondName
End Sub