如何从列表框中获取信息到单选按钮的文本框
问题描述:
我一直在试图弄清楚我做错了什么。我有两个单选按钮,一个用于新用户,另一个用于现有用户。新的用户单选按钮将输入到文本框中的信息添加到列表框中。现有的用户按钮应该在列表框中选中该行并将其分解,然后将其放回到我的文本框中。我已经编写了单选按钮的代码,但它们工作不正常。我如何获得正确处理的信息并显示在文本框中?我试过了一个分割和一个函数,但是这不成功。谁能帮忙?这是我对单选按钮的支持,如果你需要我可以发布其余的代码。如何从列表框中获取信息到单选按钮的文本框
Private Sub rbtnNew_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnNew.CheckedChanged
lstCustomer.Items.Add(RevName(txtName.Text.ToUpper) & " , " & (txtAddress.Text.ToUpper) & " , " & (txtCity.Text.ToUpper))
End Sub
Private Sub rbtnExisting_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtnExisting.CheckedChanged
Dim name1 As String
Dim address2 As String
Dim city2 As String
Dim output() As String
name1 = txtName.Text
address2 = txtAddress.Text
city2 = txtCity.Text
output = Split(lstCustomer.SelectedItem.ToString(), ",")
txtName.Text = output(0)
txtAddress.Text = output(1)
txtCity.Text = output(2)
lstResults.Items.Clear()
txtChairs.Clear()
txtSofas.Clear()
End Sub
末级
答
的单选按钮的CheckedChanged事件可以是触发或者是选中还是未选中。确保检查事件功能中单选按钮的值/属性。
编辑:你有错误检查代码的情况下,列表框根本没有任何项目?由于在列表框中没有选择项目,会导致ListBox.SelectedItem返回null或Split()函数无法处理的内容。
http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.selecteditem%28v=vs.110%29.aspx
此外,在使用由该系统提供的字符串处理功能,如加入(),CONCAT()。
http://msdn.microsoft.com/en-us/library/aa903372%28v=vs.71%29.aspx
检查尺寸/从分割所得的字符串数组的长度()。
答
在这种情况下,如果将AutoCheck属性设置为True,则这些单选按钮很难管理。无论如何,我给你一对夫妇可能的解决方案:
解决方案#1(自动检查属性设置为true):
Private Sub rbtnNew_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtnNew.CheckedChanged
Static wasInvoked As Boolean
If Not wasInvoked Then
If rbtnNew.Checked Then
lstCustomer.Items.Add(RevName(txtName.Text.ToUpper) & " , " & (txtAddress.Text.ToUpper) & " , " & (txtCity.Text.ToUpper))
Else
If lstCustomer.SelectedItem Is Nothing Then
wasInvoked = True
rbtnNew.Checked = True
wasInvoked = False
MessageBox.Show("Please select a customer from the list.")
End If
End If
End If
End Sub
Private Sub rbtnExisting_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rbtnExisting.CheckedChanged
If rbtnExisting.Checked Then
Dim name1 As String
Dim address2 As String
Dim city2 As String
Dim output() As String
name1 = txtName.Text
address2 = txtAddress.Text
city2 = txtCity.Text
output = Split(lstCustomer.SelectedItem.ToString(), ",")
txtName.Text = output(0)
txtAddress.Text = output(1)
txtCity.Text = output(2)
lstResults.Items.Clear()
txtChairs.Clear()
txtSofas.Clear()
End If
End Sub
解决方案#2(单选按钮的自动检查属性设置为false):
Private Sub rbtnNew_CheckedChanged(sender As Object, e As System.EventArgs) Handles rbtnNew.CheckedChanged
rbtnExisting.Checked = Not rbtnNew.Checked
End Sub
Private Sub rbtnExisting_CheckedChanged(sender As Object, e As System.EventArgs) Handles rbtnExisting.CheckedChanged
rbtnNew.Checked = Not rbtnExisting.Checked
End Sub
Private Sub rbtnNew_Click(sender As Object, e As System.EventArgs) Handles rbtnNew.Click
If Not rbtnNew.Checked Then
rbtnNew.Checked = True
lstCustomer.Items.Add(RevName(txtName.Text.ToUpper) & " , " & (txtAddress.Text.ToUpper) & " , " & (txtCity.Text.ToUpper))
End If
End Sub
Private Sub rbtnExisting_Click(sender As Object, e As System.EventArgs) Handles rbtnExisting.Click
If Not rbtnExisting.Checked Then
If lstCustomer.SelectedItem Is Nothing Then
MessageBox.Show("Please select a customer from the list.")
Else
rbtnExisting.Checked = True
Dim name1 As String
Dim address2 As String
Dim city2 As String
Dim output() As String
name1 = txtName.Text
address2 = txtAddress.Text
city2 = txtCity.Text
output = Split(lstCustomer.SelectedItem.ToString(), ",")
txtName.Text = output(0)
txtAddress.Text = output(1)
txtCity.Text = output(2)
lstResults.Items.Clear()
txtChairs.Clear()
txtSofas.Clear()
End If
End If
这是你在说什么吗? Private Sub rbtnNew_CheckedChanged(ByVal sender As System.Object,ByVal e As System.EventArgs)Handle rbtnNew.CheckedChanged If rbtnNew.Checked = True Then lstCustomer.Items.Add(RevName(txtName.Text.ToUpper)&“,” &(txtAddress.Text.ToUpper)&“,”&(txtCity.Text.ToUpper)) End If End Sub – 2014-10-29 01:13:45
难以阅读它的方式您的评论格式化的代码,但是,基本上是这样。您实际上也可以在同一个checkedchanged事件中处理这两个单选按钮。 – Zack 2014-10-29 01:34:28
错误仍然表示输出没有位置。我无法从列表框中选择名称来分隔并返回文本框。我正在解释我能做到的最好的方式,但我希望你明白我在说什么。如果我向您发送了该程序以便您能看到问题,它会有帮助吗? – 2014-10-29 02:11:41