极其困惑的有关问题,关于webbrowser中,文本框元素内容不能正常用鼠标选取的有关问题
极其困惑的问题,关于webbrowser中,文本框元素内容不能正常用鼠标选取的问题?
form2上有一个webbrowser控件,其中显示带有框架的网页。
当form2为顶层窗体时,对于网页上的操作都正常,当用如下代码把form2加入panel中作为子窗体时
,出现了问题:
网页上部分文本框(注意是部分并不是全部)无法进行鼠标正常的点选操作。
正常的情况是单击文本框,该文本框内容处于全部选中状态如下图:

再次单击后,全选状态消除,在鼠标单击处显示光标,可以进行正常的文本内容的划取。
而作为子窗体后,部分文本框单击后文本框处于全选状态,再次单击,全选状态无法消除(不插入光标),如双击该文本框就会失去焦点,简单的说就是单击全选,双击失去焦点,无法正常编辑。如下图:

该文本框网页上的JS代码如下:
开始我认为是窗体是非顶层窗体造成的,可为什么打开其他网页文本框输入都正常,只有这个出现问题,于是我考虑到是网页本身对该文本框做了手脚,于是我用AttachEventHandler方法为备注文本框的单击事件添加一个事件处理程序:
有效果了,鼠标单击后没有了全选状态,可以插入光标,但光标的位置却出现问题,单击后,在文本框前面闪一下,最后面闪一下,最后定位到最前面,再单击还是如此,无法在鼠标单击处插入光标,无论在其哪个位置按鼠标左键进行拖划,高亮部分都是从最前面开始。
因为程序需要必须要在同一个窗体上显示子窗体,我用多档mdi情况也是如此,必须要解决这个问题
困惑了半个月了还没有找到好的方法,请教了。
------解决方案--------------------
直接把webbrowser 控件放在form1的panel里不行吗,为什么还要个form2?
form2上有一个webbrowser控件,其中显示带有框架的网页。
当form2为顶层窗体时,对于网页上的操作都正常,当用如下代码把form2加入panel中作为子窗体时
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form2.TopLevel = False
Me.Panel1.Controls.Add(Form2)
Form2.Dock = DockStyle.Fill
Form2.Show()
End Sub
,出现了问题:
网页上部分文本框(注意是部分并不是全部)无法进行鼠标正常的点选操作。
正常的情况是单击文本框,该文本框内容处于全部选中状态如下图:
再次单击后,全选状态消除,在鼠标单击处显示光标,可以进行正常的文本内容的划取。
而作为子窗体后,部分文本框单击后文本框处于全选状态,再次单击,全选状态无法消除(不插入光标),如双击该文本框就会失去焦点,简单的说就是单击全选,双击失去焦点,无法正常编辑。如下图:
该文本框网页上的JS代码如下:
<TR>
<TD class="label" >备注</TD>
<TD colspan=5 class="editLabel">
<textarea rows="2" cols="20" style="width:410px;height:35px" class="Edit" name="BZ" fieldname="BZ" must="false" maxlength="128" ></textarea>
</TD>
</TR>
开始我认为是窗体是非顶层窗体造成的,可为什么打开其他网页文本框输入都正常,只有这个出现问题,于是我考虑到是网页本身对该文本框做了手脚,于是我用AttachEventHandler方法为备注文本框的单击事件添加一个事件处理程序:
webbrowser1.document.getelementbyid("BZ").select()
有效果了,鼠标单击后没有了全选状态,可以插入光标,但光标的位置却出现问题,单击后,在文本框前面闪一下,最后面闪一下,最后定位到最前面,再单击还是如此,无法在鼠标单击处插入光标,无论在其哪个位置按鼠标左键进行拖划,高亮部分都是从最前面开始。
因为程序需要必须要在同一个窗体上显示子窗体,我用多档mdi情况也是如此,必须要解决这个问题
困惑了半个月了还没有找到好的方法,请教了。
------解决方案--------------------
直接把webbrowser 控件放在form1的panel里不行吗,为什么还要个form2?