4 votes

J'ai besoin d'une meilleure compréhension de mon instruction if

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim PageInput As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
    For Each elem As HtmlElement In PageInput
        If elem.GetAttribute("name") = "wdf_origin" Then
            elem.SetAttribute("value", FromTXT.Text)
        End If
        If elem.GetAttribute("name") = "wdf_destination" Then
            elem.SetAttribute("value", ToTXT.Text)
        End If
        If RadioButton1.Checked = True Then
            elem.GetAttribute("id") = "oneway" Then
            elem.SetAttribute("checked", RadioButton1.Checked) Then
            elem.GetAttribute("id") = "wdfdate1" Then
            elem.SetAttribute("value", DateTimePicker1.Text)
        End If
        If RadioButton2.Checked = True Then
            elem.GetAttribute("id") = "return" Then
            elem.SetAttribute("checked", RadioButton2.Checked) Then
            elem.GetAttribute("id") = "wdfdate1" Then
            elem.SetAttribute("value", DateTimePicker1.Text) Then
            elem.GetAttribute("id") = "wdfdate2" Then
            elem.SetAttribute("value", DateTimePicker2.Text)
        End If
    Next

    Dim PageInput2 As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("select")
    For Each elem As HtmlElement In PageInput2
        If elem.GetAttribute("id") = "adults" Then
            elem.SetAttribute("value", AdultsTXT.Text)
        End If
        If elem.GetAttribute("id") = "children" Then
            elem.SetAttribute("value", ChildrenTXT.Text)
        End If
        If elem.GetAttribute("id") = "infants" Then
            elem.SetAttribute("value", InfantsTXT.Text)
        End If
        If RadioButton1.Checked = True Then
            elem.GetAttribute("id") = "wdftime1" Then
            elem.SetAttribute("value", Time1TXT.Text)
        End If
        If RadioButton2.Checked = True Then
            elem.GetAttribute("id") = "wdftime2" Then
            elem.SetAttribute("value", Time2TXT.Text) Then
            elem.GetAttribute("id") = "wdftime1" Then
            elem.SetAttribute("value", Time1TXT.Text)
        End If
    Next
End Sub

Pour l'instant, j'obtiens cette erreur

l'expression est une valeur et ne peut donc pas être la cible d'une affectation

sur le elem.GetAttribute(" ") lignes. En plus de dire qu'il s'attend à ce que la déclaration se termine sur certaines des Then s. Ne puis-je pas définir certaines méthodes dans les instructions if afin qu'elles incluent certaines zones de texte ? J'essaie de faire en sorte que les RadioButtons pour envoyer certaines zones de texte dépend de la RadioButton est sélectionné.

Toute suggestion ou ressource serait utile.

2voto

Mark Hall Points 29473

Vous devez vous assurer que chaque Then a un If correspondant, et il semble également que vous deviez utiliser la fonction AndAlso y ElseIf opérateurs pour faire ce que vous voulez. La raison pour laquelle vous obtenez les erreurs "l'expression est une valeur et ne peut donc pas être la cible d'une affectation" est que vous essayez d'affecter la valeur à votre GetAttribute en raison de l'absence d'une instruction If.

Voyez si cela fonctionne mieux pour vous.

Private Sub WebBrowser1_DocumentCompleted(sender As System.Object, e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    Dim PageInput As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("input")
    For Each elem As HtmlElement In PageInput
        If elem.GetAttribute("name") = "wdf_origin" Then
            elem.SetAttribute("value", FromTXT.Text)
        End If
        If elem.GetAttribute("name") = "wdf_destination" Then
            elem.SetAttribute("value", ToTXT.Text)
        End If
        If RadioButton1.Checked then
            If elem.GetAttribute("id") = "oneway" Then
                elem.SetAttribute("checked", CStr(RadioButton1.Checked))
            ElseIf elem.GetAttribute("id") = "wdfdate1" Then
                elem.SetAttribute("value", DateTimePicker1.Text)
            End If
        End If

        If RadioButton2.Checked then
            If elem.GetAttribute("id") = "return" Then
                elem.SetAttribute("checked", RadioButton2.Checked.ToString)
            ElseIf elem.GetAttribute("id") = "wdfdate1" Then
                elem.SetAttribute("value", DateTimePicker1.Text)
            ElseIf elem.GetAttribute("id") = "wdfdate2" Then
                elem.SetAttribute("value", DateTimePicker2.Text)
            End If
        End If

    Next

    Dim PageInput2 As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("select")
    For Each elem As HtmlElement In PageInput2
        If elem.GetAttribute("id") = "adults" Then
            elem.SetAttribute("value", AdultsTXT.Text)
        End If
        If elem.GetAttribute("id") = "children" Then
            elem.SetAttribute("value", ChildrenTXT.Text)
        End If
        If elem.GetAttribute("id") = "infants" Then
            elem.SetAttribute("value", InfantsTXT.Text)
        End If
        If RadioButton1.Checked AndAlso elem.GetAttribute("id") = "wdftime1" Then
            elem.SetAttribute("value", Time1TXT.Text)
        End If
        If RadioButton2.Checked Then
            If elem.GetAttribute("id") = "wdftime2" Then
                elem.SetAttribute("value", Time2TXT.Text)
            ElseIf elem.GetAttribute("id") = "wdftime1" Then
                elem.SetAttribute("value", Time1TXT.Text)
            End If
        End If
    Next

End Sub

0voto

xpda Points 8417

Il y a quelques erreurs de syntaxe. Vous devriez avoir un If avant chaque Then comme vous le faites dans la première. Je ne suis pas sûr de la logique que vous recherchez, mais vous pouvez utiliser and ou or entre les expressions si nécessaire, ou vous pouvez imbriquer une If End If à l'intérieur d'un autre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X