2016-05-20 3 views
0

RadioButtonのいずれかをチェックせずにComboBoxの項目をクリックした後に、ユーザーにメッセージが表示されます。これは、アイテムから情報を取得してDataGridViewに記入するために使用しているコードです。チェックボックスとラジオボタンから検証する方法

Private Sub cbExtensão_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbExtensão.SelectedIndexChanged 
    If cbExtensão.Visible <> cbExtensão.V(rbPorData.Checked & rbPorExtensão.Checked & rbPorNome.Checked) Then 
     If rbPorData.Checked Then 
      DataGridView2.DataSource = FillDataGridViewData(cbExtensão.Text) 
     ElseIf rbPorExtensão.Checked Then 
      DataGridView2.DataSource = FillDataGridViewExtensao(cbExtensão.Text) 
     ElseIf rbPorNome.Checked Then 
      DataGridView2.DataSource = FillDataGridViewName(cbExtensão.Text) 
     End If 
    Else 
     MsgBox("Please, check an option to search") 
    End If 
End Sub 

私は何をしようとしていることは、このラインIf cbExtensão.Visible <> cbExtensão.V(rbPorData.Checked & rbPorExtensão.Checked & rbPorNome.Checked) Thenで何かを作っているが、私は多くのことを試みたと私はトンがそこから何かを得ることができます«。基本的には、ユーザが項目をクリックした後にRadioButtonを選択してもdo not'tメッセージを表示したい場合は

+1

"AndAlso"はVBの節を結合するために使用されます。 '&'は文字列連結のためのものです – Plutonix

+0

私はそれを使用しても何もできません – user6363145

+1

あなたはその行をとにかく必要としません - RBがチェックされていない場合を処理する 'Else'を追加してください。 – Plutonix

答えて

0

これは私のコードのために行った方法です。

Private Sub UserMsgBox(ByVal sMsg As String) 

     Dim sb As New StringBuilder() 
     Dim oFormObject As System.Web.UI.Control 

     sMsg = sMsg.Replace("'", "\'") 
     sMsg = sMsg.Replace(Chr(34), "\" & Chr(34)) 
     sMsg = sMsg.Replace(vbCrLf, "\n") 

     sMsg += "<script language=javascript " 
     sMsg += "type=text/" + "javascript" + ">" 
     smsg += "alert ('" + "Please click on a code type" + "')" 
     sMsg += "</" + "script" + ">" 


     sb = New StringBuilder() 
     sb.Append(sMsg) 


      Page.RegisterclientScriptBlock("clientScript", sMsg) 



     For Each oFormObject In Me.Controls 
      If TypeOf oFormObject Is HtmlForm Then 
       Exit For 
      End If 
     Next 

    ' Add the javascript after the form object so that the 
    ' message doesn't appear on a blank screen. 
     oFormObject.Controls.AddAt(oFormObject.Controls.Count, New LiteralControl(sb.ToString())) 

end sub 
+0

私のコードを改善して使いたいだけです。ご協力ありがとうございました。 – user6363145

0

Plutonixはコメントでmentionnedとして、あなただけの最初のifステートメントを削除することができます...

Private Sub cbExtensão_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cbExtensão.SelectedIndexChanged 
    If rbPorData.Checked Then 
     DataGridView2.DataSource = FillDataGridViewData(cbExtensão.Text) 
    ElseIf rbPorExtensão.Checked Then 
     DataGridView2.DataSource = FillDataGridViewExtensao(cbExtensão.Text) 
    ElseIf rbPorNome.Checked Then 
     DataGridView2.DataSource = FillDataGridViewName(cbExtensão.Text) 
    Else 
     MsgBox("Please, check an option to search") 
    End If 
End Sub 

何のボックスが選択されていないのであれば、それはElseステートメントに落ちるでしょう。

関連する問題