2016-06-13 5 views
0

Итак, у меня есть 4 radiobutton, и 3 из них будут использовать одни и те же предметы из checkbox, но другой покажет пользователю другую информацию после того, как он ее проверит. Это код, который я использую:Если заявление для radobutton's

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

Это код одного из методов, которые я назвал:

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 

Где я должен использовать этот код, чтобы сделать эту работу? Я сделал некоторые попытки сделать эту работу, и один из них был помещен в форму if, но это не сработает, потому что я использую вкладки.

+0

Как насчет в 'CheckedChanged'? Кроме того, вместо оператора Dispose используйте инструкцию 'Using'. –

+0

Кроме того, я не уверен в контексте, но, вероятно, вам нужно использовать 'OrElse' вместо' And' в вашем 'If', поскольку в противном случае все три радиобокса должны быть отмечены галочкой:' Если rbPorData.Checked OrElse rbPorExtensão.Checked OrElse rbPorNome.Checked Then' –

+0

Но где его использовать? В форму? @KeithMifsud –

ответ

0

Вы должны использовать событие в .NET 'CheckedChanged': 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