none
自动填写表单求教高手,谢谢!!! RRS feed

答案

  • 你好 我刚才测试了这段代码 没有遇到任何问题的

    Public Class Form1
    
      Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
        Dim document As System.Windows.Forms.HtmlDocument = _
            WebBrowser1.Document
        If document IsNot Nothing And _
          document.All("userName") IsNot Nothing And _
          String.IsNullOrEmpty( _
          document.All("userName").GetAttribute("value")) Then
    
          e.Cancel = True
          MsgBox("You must enter your name before you can navigate to " & _
            e.Url.ToString())
        End If
    
      End Sub
    
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.DocumentText = _
            "<html><body>Please enter your name:<br/>" & _
            "<input type='text' name='userName'/><br/>" & _
            "<a href='http://www.microsoft.com'>continue</a>" & _
            "</body></html>"
    
      End Sub
    End Class
    

     请你在仔细检查下呢


    I see you~,.NET交流群71840452 微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~
    2010年9月17日 6:40
    版主

全部回复

  • 你好 这需要根据你的情况来定

    如果你使用的是WebBrowser控件 那么直接只许通过引用这些元素设置其内容 然后引发提交事件即可 具体参考http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.document(v=VS.80).aspx

    http://msdn.microsoft.com/zh-cn/library/system.windows.forms.htmldocument(v=VS.80).aspx

     

    如果你使用的是HttpWebRequest 可以直接在RequestStream中设置这些元素的内容以及由谁点击触发的提交事件

    http://msdn.microsoft.com/zh-cn/library/system.net.httpwebrequest.contentlength.aspx


    I see you~,.NET交流群71840452 微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~
    2010年9月17日 1:51
    版主
  • 谢谢!!!

    Private Sub Web1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles Web1.Navigating
            Dim document As System.Windows.Forms.HtmlDocument = Web1.Document
            If document IsNot Nothing And document.All("userName") IsNot Nothing And String.IsNullOrEmpty(document.All("userName").GetAttribute("value")) Then

                e.Cancel = True
                MsgBox("You must enter your name before you can navigate to " & e.Url.ToString())
            End If
        End Sub

    提示:(If document IsNot Nothing And document.All("userName") IsNot Nothing And String.IsNullOrEmpty(document.All("userName").GetAttribute("value")) Then)未将对象引用设置到对象的实例

    请教该如何解决,谢谢!!!

    2010年9月17日 2:57
  • 你好 请问你按照这个例子 http://msdn.microsoft.com/zh-cn/library/system.windows.forms.webbrowser.navigating(v=VS.80).aspx  在Form_Load中设置了

    Web1.DocumentText = _
            "<html><body>Please enter your name:<br/>" & _
            "<input type='text' name='userName'/><br/>" & _
            "<a href='http://www.microsoft.com'>continue</a>" & _
            "</body></html>"
    吗?

    如果没有 document.All("userName")这里将返回null 因此导致再调用GetAttribute的时候会出现错误


    I see you~,.NET交流群71840452 微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~
    2010年9月17日 5:14
    版主
  • 谢谢!!!还是

    提示:(If document IsNot Nothing And document.All("userName") IsNot Nothing And String.IsNullOrEmpty(document.All("userName").GetAttribute("value")) Then)未将对象引用设置到对象的实例

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Web1.Navigate("about:blank")
            Web1.DocumentText = _
           "<html><body>Please enter your name:<br/>" & _
           "<input type='text' name='userName'/><br/>" & _
           "<a href='http://www.microsoft.com'>continue</a>" & _
           "</body></html>"
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Web1.Navigate(TextBox1.Text)
        End Sub

     

        Private Sub Web1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles Web1.Navigating

            Dim document As System.Windows.Forms.HtmlDocument = Web1.Document
            If document IsNot Nothing And document.All("userName") IsNot Nothing And String.IsNullOrEmpty(document.All("userName").GetAttribute("value")) Then

                e.Cancel = True
                MsgBox("You must enter your name before you can navigate to " & e.Url.ToString())
            End If

        End Sub

    2010年9月17日 5:58
  • 你好 我刚才测试了这段代码 没有遇到任何问题的

    Public Class Form1
    
      Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
        Dim document As System.Windows.Forms.HtmlDocument = _
            WebBrowser1.Document
        If document IsNot Nothing And _
          document.All("userName") IsNot Nothing And _
          String.IsNullOrEmpty( _
          document.All("userName").GetAttribute("value")) Then
    
          e.Cancel = True
          MsgBox("You must enter your name before you can navigate to " & _
            e.Url.ToString())
        End If
    
      End Sub
    
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.DocumentText = _
            "<html><body>Please enter your name:<br/>" & _
            "<input type='text' name='userName'/><br/>" & _
            "<a href='http://www.microsoft.com'>continue</a>" & _
            "</body></html>"
    
      End Sub
    End Class
    

     请你在仔细检查下呢


    I see you~,.NET交流群71840452 微软中文论坛同城社区成都QQ群:74268428http://hi.baidu.com/1987raymondMy Blog~~~
    2010年9月17日 6:40
    版主
  • 谢谢!!!是不是需要引入什么文件,谢谢!!!
    2010年9月17日 7:06
  • 我用的版本为vb2010
    2010年9月17日 7:15
  • 不需要的,你直接测试一下版主的试试看。或者你下载VB Express 2010再试试看。

    下载地址:(建议下载ISO,然后安装其中的VB,下载All - Offline Install ISO image file

    http://www.microsoft.com/express/Downloads/#2010-All

    2010年9月20日 3:23
    版主