Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [vb/2010] Nascondere un controllo in WebBrowser

    Ciao a tutti,
    nella mia applicazione WPF ho un form contenente un controllo WebBrowser che visualizza una pagina internet. Di questa pagina internet voglio nascondere un controllo input di tipo text (<input type="text"). Ho provato a cambiare vari attributi ma il controllo rimane sempre visibile:

    codice:
    ' Gets the Document object that represents the hosted HTML page
    Dim doc As Object = WebBrowser1.Document
    ' Dichiaro l'oggetto per la lettura e la modifica degli attributi
    Dim element As Object
    ' Modifica dell'attributo
    element = doc.GetElementById("user").SetAttribute("type", "hidden")
    Qual è l'attributo giusto da modificare?

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    "style" impostato a "display: none;" dovrebbe andare.
    Non so poi se in VB c'è un metodo più veloce...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Ciao Scara,

    Né con questo codice
    codice:
    element = doc.GetElementById("user").SetAttribute("display", "none")
    Né con questo
    codice:
    element = doc.GetElementById("user").SetAttribute("style", "display:none")
    il controllo viene nascosto...

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Ciao,
    aggiungi il riferimento Microsoft.mshtml, dalla proprietà document del webbrowser ottieni un mshtml.HTMLDocument (esegui il cast), da qui ottieni l'elemento con la sub getElementById (.getElementById("user")), una volta ottenuta chiami la sub .getAttribute("style"), ottenendo così lo style, da questo chiami il campo visibility (.visibility = "hidden") e lo imposti ad hidden, a questo punto usi .setAttribute("style", TuoOggettoStyle).

    eccoti un esempio (però è fatto in c#, ma non dovrebbe essere difficile tradurlo...) :

    codice:
    var doc = webBrowser.Document as mshtml.HTMLDocument;            
                var elementoHtml = doc.getElementById("Submit");
                var style = elementoHtml.getAttribute("style");
                style.visibility = "hidden";
                elementoHtml.setAttribute("style", style);

  5. #5
    Grazie U235. Ora sono in vacanza. Quando torno provo e ti faccio sapere. Grazie mille

  6. #6
    Ciao,
    ho provato con questo codice

    codice:
    ' Ottengo la proprietà document del webbrowser
    Dim doc As Object = WebBrowser1.Document
    ' Dichiaro element per la lettura e modifica dell'elemento
    Dim element As Object
    ' Leggo l'elemento che mi interessa dal documento
    element = doc.GetElementById("user")
    ' Dichiaro style per leggere l'attributo "style" dell'elemento "user"
    Dim style = element.GetAttribute("style")
    ' imposto visibility a hidden
    style.visibility = "hidden"
    ' modifico l'attributo style dell'elemento passandogli come argomento la variabile style
    element.SetAttribute("style", style)
    Genera l'eccezione "Tipo di variabile non valido" sull'ultima istruzione. Non riesco ad eseguire il cast delle due variabili "doc" ed "element" in htmldocument perché è una classe appartenente al name space System.Windows.Forms che è incompatibile con applicazioni WPF. Le dichiaro Object, non so se questo è il problema...

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Originariamente inviato da U235
    Ciao,
    aggiungi il riferimento Microsoft.mshtml...
    usa quel riferimento, é anche per wpf.

  8. #8
    Visual Studio genera eccezioni in fase di compilazione se modifico il codice:
    Prima eccezione:
    codice:
    ' Metodo che permette di navigare all'uri digitato con la pressione del tasto ENTER
    Private Sub AddressTextBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Input.KeyEventArgs) Handles AddressTextBox.KeyUp
            If e.Key = Key.Enter Then
                GoButton.RaiseEvent(New System.Windows.RoutedEventArgs(Button.ClickEvent))
            End If
    End Sub
    Importando il name space System.Windows.Forms genera l'eccezione sull'evento "Button.ClickEvent" dicendo che non è membro di System.Windows.Forms.Button. Perché?

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,538
    Originariamente inviato da Marco.Maffei-12
    Visual Studio genera eccezioni in fase di compilazione se modifico il codice:
    Prima eccezione:
    codice:
    ' Metodo che permette di navigare all'uri digitato con la pressione del tasto ENTER
    Private Sub AddressTextBox_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Input.KeyEventArgs) Handles AddressTextBox.KeyUp
            If e.Key = Key.Enter Then
                GoButton.RaiseEvent(New System.Windows.RoutedEventArgs(Button.ClickEvent))
            End If
    End Sub
    Importando il name space System.Windows.Forms genera l'eccezione sull'evento "Button.ClickEvent" dicendo che non è membro di System.Windows.Forms.Button. Perché?
    perché vuoi importare System.Windows.Forms in un applicazione wpf?

  10. #10
    Perché l'object browser mi dice che la classe htmldocument si trova in quel name space. Senza importarlo mi dice che la classe non è definita. La classe mshtml nel mio visual studio non esiste proprio...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.