2016-06-09 47 views
1

我遇到了我分配给Visual Basic 2012课程的问题。说明如下。到目前为止,我只显示输入的名字,没有别的。我怎样才能让它显示所请求的序列中的名字和姓氏?如何使用字符串以不同顺序显示名称?

String问题:在文本框中输入您的名字和姓氏。取名称并将其显示在显示姓氏,名字的标签框中。

文本框输入:李四

标签框:DOE,简

我到目前为止的代码如下。谢谢你的帮助!

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 
    Dim fullname As String 
    Dim firstname As String 
    Dim indexnum As Integer 
    Dim lastname As String 

    fullname = fulltextbox.Text 

    indexnum = fullname.IndexOf(" ") 

    firstname = fullname.Substring(0, indexnum) 

    firstlabel.Text = firstname 
    fulltextbox.Focus() 
End Sub 

Private Sub fulltextbox_TextChanged(sender As Object, e As EventArgs) 
    firstlabel.Text = String.Empty 

    fulltextbox.SelectAll() 
End Sub 

Private Sub btnexit_Click(sender As Object, e As EventArgs) Handles btnexit.Click 
    Me.Close() 
End Sub 
+0

单击按钮时标签是否应该更改? –

回答

0

你是在正确的轨道上,首先确定在空间位于:

indexnum = fullname.IndexOf(" ") 

现在基于该指标,可以将字符串分割成两个字符串,firstnamelastname

firstname = fullname.Substring(0, indexnum) 
lastname = fullname.Substring(indexnum+1) 

您需要使用indexnum+1而不是indexnum,否则您将包含间距字符。

最后,你组在一起再次使用string concatenation operator (&)

firstlabel.Text = lastname & ", " & firstname 

的最后一个方法因而看起来像:

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 
    Dim fullname As String 
    Dim firstname As String 
    Dim indexnum As Integer 
    Dim lastname As String 

    fullname = fulltextbox.Text 

    indexnum = fullname.IndexOf(" ") 

    firstname = fullname.Substring(0, indexnum) 
    lastname = fullname.Substring(indexnum+1) 

    firstlabel.Text = lastname & ", " & firstname 
    fulltextbox.Focus() 
End Sub 
0

注意,这也不会,如果你的使用中工作缩写。此外,我会从删除fulltextbox.SelectAll()

Private Sub btndisplay_Click(sender As Object, e As EventArgs) Handles btndisplay.Click 

    Dim Names() As String = fulltextbox.Text.Split(" "c) 

    If Names.Count = 2 Then 
     firstlabel.Text = Names(1) + ", " + Names(0) 
    ElseIf Names.Count = 0 Then 
     MessageBox.Show("Please enter name.") 
    Else 
     MessageBox.Show("Invalid Nmae entered.") 
    End If 

    fulltextbox.Text = "" 

End Sub 
+0

这一个没有工作,因为Option Strict On不允许从字符串到字符的隐式对话,但感谢您花时间回答! –

+0

我修好了。 'Dim Names()As String = fulltextbox.Text.Split(“”c) ' –

相关问题