webbrower 中嵌入网页,在鼠标移动td时td 里面换成文本框,当改变文本框内容时,移开鼠标时文本框消失,激发一个事件(把改动的数据存入数据库中)这个事件由程序来完成不要用脚本

解决方案 »

  1.   

    这个代码可真费了我不少功夫! -_-!!!
    '需要添加WebBrowser控件并引用Microsoft HTML Object LibraryDim WithEvents webDoc As HTMLDocument
    Dim webTag As Object
    Dim WithEvents objTD As HTMLTableCell, WithEvents objText As HTMLInputTextElement
    Dim lengthTag As Integer
    Dim countTag As Integer
    Dim bMoved As BooleanPrivate Sub Form_Load()
        web.Navigate "about:blank"
        web.Document.write "<table width=100% border=1><tr><td id=test align=center>TD里原内容</td></tr></table>"
        Set webDoc = web.Document
        lengthTag = webDoc.All.length - 1
        For countTag = 0 To lengthTag
            Set webTag = webDoc.All.Item(countTag)
            If LCase(webDoc.All.Item(countTag).tagName) = "td" Then
                If webTag.Id = "test" Then
                    Set objTD = webTag
                End If
            End If
        Next
    End SubPrivate Sub objTD_onmousemove()
        If Not bMoved Then
            bMoved = True
            web.Document.body.innerHTML = "<table width=100% border=1><tr><td id=test align=center><form id=form1 name=form1 method=post><input name=textfield type=text maxlength=10></form></td></tr></table>"
            Set webDoc = web.Document
            lengthTag = webDoc.All.length - 1
            For countTag = 0 To lengthTag
                Set webTag = webDoc.All.Item(countTag)
                If LCase(webDoc.All.Item(countTag).tagName) = "input" Then
                    If webTag.Name = "textfield" Then
                        Set objText = webTag
                    End If
                End If
            Next
        End If
    End SubPrivate Sub objText_onmouseleave()
        If objText.Value <> "" Then
            Debug.Print objText.Value
            '此处加入保存到数据库的代码即可
            web.Document.body.innerHTML = "<table width=100% border=1><tr><td id=test align=center>输入完毕</td></tr></table>"
        End If
    End Sub
      

  2.   

    对了,补充一下,因为我的这个例子里面整个网页的html代码很少,所以在替换<td>里面的元素后我把整个body的html进行重写,楼主在实际应用中如果有很多个这样的<td>,可以给每个<td>一个不同的id,替换里面的元素后只重写这个<td>的innerhtml就行了。