2014-10-29 2 views
0

나는 잘못하고있는 것을 알아 내려고 노력했습니다. 새로운 사용자를위한 두 개의 라디오 버튼과 기존 사용자를위한 두 개의 라디오 버튼이 있습니다. 새로운 사용자 라디오 버튼은 입력 된 정보를 텍스트 상자로 가져와 목록 상자에 추가합니다. 기존 사용자 버튼은 목록 상자에서 선택한 행을 취한 다음 해체 한 다음 다시 내 텍스트 상자에 넣습니다. 라디오 버튼에 대한 코드를 작성했지만 제대로 작동하지 않습니다. 정보를 올바르게 처리하고 텍스트 상자에 표시하려면 어떻게해야합니까? 분할 및 함수를 시도했지만 실패했습니다. 누구든지 도와 줄 수 있습니까? 지금까지 라디오 버튼에 대한 내용은 지금까지 내가 필요한 경우 나머지 코드를 게시 할 수 있습니다.목록 상자에서 라디오 버튼이있는 텍스트 상자로 정보를 가져 오는 방법

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 

최종 클래스

답변

1

라디오 버튼 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

체크 크기/분할의 결과 스트링 어레이의 길이().

+0

어쨌든 나는 당신에게 가능한 솔루션의 몇 줄 너 무슨 소리 야? 개인 하위 rbtnNew_CheckedChanged (ByVal 보낸 System.Object, ByVal 전자 System.EventArgs 같이) 처리합니다. rbtnNew.CheckedChanged 경우 rbtnNew.Checked = True Then lstCustomer.Items.Add (RevName (txtName.Text.ToUpper) & " & (txtAddress.Text.ToUpper) & ","& (txtCity.Text.ToUpper) 끝 부분 End Sub –

+0

의견을 형식화하는 방식으로 코드를 읽는 것이 어렵지 만 그래, 기본적으로 그 것입니다. 실제로 동일한 checkedchanged 이벤트에서 두 라디오 버튼을 모두 처리 할 수 ​​있습니다. – Zack

+0

오류는 여전히 출력 위치가 없음을 나타냅니다. 목록 상자에서 이름을 선택하여 텍스트 상자에 별도로 표시 할 수는 없습니다. 내가 할 수있는 최선의 방법을 설명하고 있지만, 내가 무슨 말을하고 있는지 이해하기를 바랍니다. 내가 문제를 볼 수 있도록 프로그램을 보냈다면 도움이 될까요? –

1

이 경우 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 (RadioButtons를의 자동 검사 속성이 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 
관련 문제