2016-06-13 15 views
0

So habe ich 4 radiobutton und 3 von ihnen werden die gleichen Elemente aus der checkbox verwenden, aber der andere wird dem Benutzer weitere Informationen zeigen, nachdem er es überprüft. Dies ist der Code, den ich verwende:Wenn Anweisung für Radiobutton

If rbPorData.Checked And rbPorExtensão.Checked And rbPorNome.Checked Then 
     ShowInfoComboBox() 
    ElseIf rbPcName.Checked Then 
     ShowInfoComboBoxPcName() 
End If 

Dies ist der Code von einem der Methoden, die ich genannt habe:

Private Sub ShowInfoComboBoxPcName() 
     SQLCon = New SqlConnection 
     SQLCon.ConnectionString = "........................" 
     Try 
      SQLCon.Open() 
      Query = "SELECT PcName AS [NomePc] 
        FROM infofile 
        GROUP BY PcName" 
      SqlCmd = New SqlCommand(Query, SQLCon) 
      SqlDR = SqlCmd.ExecuteReader 
      While SqlDR.Read 
       Dim pcName = SqlDR.GetString(0) 
       cbExtensão.Items.Add(pcName) 
      End While 
      SQLCon.Close() 
     Catch ex As SqlException 
      MsgBox(ex.Message) 
     Finally 
      SQLCon.Dispose() 
     End Try 
    End Sub 

Wo soll ich diesen Code verwenden, diese Arbeit zu machen? Ich habe einige Versuche gemacht, dies zu machen und einer von ihnen wurde die if-Anweisung in das Formular gestellt, aber es wird nicht funktionieren, weil ich Tabs verwende.

+0

Wie wäre es in 'CheckedChanged'? Verwenden Sie auch eine 'Using'-Anweisung anstelle von Dispose. –

+0

Auch bin ich nicht sicher über den Kontext, aber wahrscheinlich müssen Sie 'OrElse' anstelle von' And' in Ihrem 'If' verwenden, da sonst alle drei Radioboxen angekreuzt werden müssen:' If rbPorData.Checked OrElse rbPorExtensão.Checked OrElse rbPorNome.Checked Then' –

+0

Aber wo soll ich es benutzen ?? In die Form? @KeithMifsud –

Antwort

0

Sie müssen das .NET 'CheckedChanged' Ereignis verwenden: https://msdn.microsoft.com/en-us/library/system.windows.forms.radiobutton.checkedchanged(v=vs.110).aspx

Private Sub rd_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbPorData.CheckedChanged, rbPorExtensão.CheckedChanged, rbPorNome.CheckedChanged, rbPcName.CheckedChanged 
    If rbPorData.Checked OrElse rbPorExtensão.Checked OrElse rbPorNome.Checked Then 
     ShowInfoComboBox() 
    ElseIf rbPcName.Checked Then 
     ShowInfoComboBoxPcName() 
    End If 
End Sub