2013-03-19 2 views
0

라디오 버튼을 선택해야만 텍스트 상자가 나타나기를 원합니다. RadioButtonList를 사용해 보았지만 작동시키지 못했습니다. 그래서 별도의 라디오 버튼을 사용했습니다. 그러나 작동하지 않았습니다.버튼 선택에 따라 텍스트 상자가 표시됩니다.

Protected Sub radItem_CheckedChanged(sender As Object, e As EventArgs) Handles radItem.CheckedChanged 
    If radItem.Checked = True Then 
     radClient.Checked = False 
     radUser.Text = False 
     btnSearch.Visible() = True 
     txtSearch.Visible() = True 
    End If 
End Sub 

Protected Sub radUser_CheckedChanged(sender As Object, e As EventArgs) Handles radUser.CheckedChanged 
    If radUser.Checked = True Then 
     radItem.Checked = False 
     radClient.Text = False 
     btnSearch.Visible() = True 
     txtSearch.Visible() = True 
    End If 
End Sub 

Protected Sub radClient_CheckedChanged(sender As Object, e As EventArgs) Handles radClient.CheckedChanged 
    If radClient.Checked = True Then 
     radItem.Checked = False 
     radUser.Text = False 
     btnSearch.Visible() = True 
     txtSearch.Visible() = True 
    End If 
End Sub 

어쨌든이 일을 훨씬 더 효율적인 방법이 확신 해요 : 여기에 코드입니다. tymeJV가 언급 한 바와 같이

+2

. 그 (들)을 없애 버려 .Visible – tymeJV

+0

고마워! 그냥 그랬지만 여전히 작동하지 않습니다. 다른 두 버튼은 선택을 취소하지 않고 btnSearch & txtSearch가 나타나지 않습니다. –

+0

왜 TextBox의 TextValue를 False로 설정합니까? –

답변

0

당신은 클릭 이벤트를 사용해야합니다 (소송을 따르도록 다른 사람을 변경)과 같이해야하고 당신이 추가 한 후, 같은 여러 라디오 버튼

Protected Sub rad_Click(sender As Object, e As EventArgs) Handles radItem.Click, radUser.Click, radClient.Click 
    If Ctype(sender, RadioButton).Checked = False Then Exit Sub 
    Select Case Ctype(sender, RadioButton).Name 
      Case "radItem" 
       radUser.Text = False 'You are setting the Text value to False? 
            'Are you sure about this? 

      Case "radUser" 
       radClient.Text = False 

      Case Else 'radClient 
       radUser.Text = False 
    End Select 

    'You are doing this regardless of which radio button is checked 
    radItem.Checked = False 'This is weird. You wont be able to use radItem. 

    'I dont think you need this two lines anymore. There is always 1 RadioButton that is checked 
    btnSearch.Visible = True 
    txtSearch.Visible = True 
End Sub 
+0

안녕하세요! 귀하의 회신에 감사드립니다. False 명령문의 목적은 다른 두 값을 false로 설정하는 것입니다. 간단히하기 위해 두 개의 버튼이 있다고 가정하고 button1이 선택되면 button2가 선택 취소되어야하고 그 반대의 경우도 마찬가지입니다! –

+0

button1, button2 등으로, RadioButtons를 의미합니까? RadiotButton이 자동으로 그렇게하기 때문에 그렇게하지 않아도됩니다. 나는 거짓 진술에 의해 무엇을 의미 –

+0

는이 라인은 다음과 같습니다 'radUser.Text = 거짓 radClient.Text = 거짓 왜 False로 TextValue을 설정하는 radUser.Text = FALSE ' ? –

0

, 그들은 특별히 별도로 그룹화 된 경우가 아니면, 다른 라디오 버튼을 비활성화 할 필요가 없습니다, 또한 Visible()

()를 제거합니다.

라디오 버튼을 선택하지 않아도 항상 버튼/텍스트 상자를 볼 수 있으므로 라디오 버튼 값을 확인할 필요가 없습니다. 이벤트는

Protected Sub radItem_CheckedChanged(sender As Object, e As EventArgs) Handles radItem.CheckedChanged 
    btnSearch.Visible = True 
    txtSearch.Visible = True 
End Sub 
+0

고마워요! 문제는 그룹화 할 때 코드를 구현하는 방법을 알지 못했기 때문에 ** 그룹화가 ** 개별적입니다. 어떤 제안? –

+0

그룹화하려면 다른 컨트롤 (예 : TABControl, GroupBox, Panel 등)을 호스팅 할 수있는 동일한 컨트롤에 그룹화하십시오. 해당 컨트롤 내의 모든 radioButton은 함께 그룹화됩니다. – George

+1

RadioButtonList는 그룹화 할 필요가 없습니다. 라디오 버튼을 그룹화하려면 'GroupName'속성을 사용하고 그룹으로 지정할 라디오에 동일한 값을 설정하십시오. –

0

요금을 처리되기 때문에 ' GroupName '속성을 라디오 버튼에 추가하면 다른 라디오의 Text 또는 Checked 상태를 설정할 필요가 없으므로 자동으로 업데이트됩니다. 표시/숨기기 텍스트 상자에 대한

, 당신은 각 라디오 버튼에 true로 txtSearch.Visible() = True 또는 txtSearch.Visible() = False

0

설정 AutoPostBack 속성을 설정해야합니다. 그러면 작동 할 것입니다.

+0

이 질문에 대한 답을 제공하지 않습니다. 비평하거나 저자의 설명을 요청하려면 게시물 아래에 의견을 남기십시오. 자신의 게시물에 언제든지 댓글을 달 수 있으며 충분한 [평판] (http://stackoverflow.com/help/whats-reputation)을 얻으면 [모든 게시물에 댓글을 달 수] 있어야합니다 (http://stackoverflow.com/help/privileges/comment). – zisoft

+0

@zisoft "대답이 아닙니다"는 질문에 대답하려는 시도가 없을 때만 사용해야합니다. 이 답변은 나에게 맞는 것 같지 않지만,이 경우에도 단순히 훼손되거나 플래그가 지정되거나 삭제되지 않아야합니다. – hvd

관련 문제