透过DOM操作WebBrowser内的控件

如果在Win Form的WebBrowser要去控制内含的网页上的控件, 要怎处理呢?

可以透过下列方式:

1. 首先,我们在Win Form上设定WebBrowser的URL - http://yzcomm.googlepages.com/h004.html (找一个简单的网页)

2. 然后,我们希望去调整网页下拉菜单的选项。

3. 我们先观察这个网页的源代码,然后找到有关下拉菜单的部分:

范例:

    请选择
    ------------------------
    colaccl.com
    cola‘s blog
    cola‘s album

 
 

从中,我们可以看到下拉菜单的name是choice.

4. 写程序来调整:

            If HTMLtag.TagName = "SELECT" AndAlso HTMLtag.GetAttribute("name") = "choice" Then
                For v = 0 To HTMLtag.Children.Count - 1
                    If Trim(DirectCast(HTMLtag.Children(v), System.Windows.Forms.HtmlElement).InnerText) = Trim("colaccl.com") Then
                        DirectCast(HTMLtag.Children(v), System.Windows.Forms.HtmlElement).SetAttribute("selected", "selected")
                        Exit For
                    End If
                Next
           End If
Next

针对TagName为Select以及name属性为choice(就是我们要的那个下拉菜单), 然后根据InnerText去判断我们想要的选项.

最后设定其为被选择的项目.

原本:

按下按钮后:

?

如果您有微软技术开发的问题,可以到MSDN Forum发问。

如果您有微软IT管理的问题,可以到TechNet Forum发问喔。

?

原文:大专栏  透过DOM操作WebBrowser内的控件

原文地址:https://www.cnblogs.com/petewell/p/11509960.html

时间: 2024-08-30 05:00:20

透过DOM操作WebBrowser内的控件的相关文章

解决Android中,禁止ScrollView内的控件改变之后自动滚动

问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: [html] view plaincopy <ScrollView android:id="@+id/scrollView1" a

C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法

? 1 2 3 4 //点击一下即可对DataGridView中内嵌控件进行编辑,不需要二次点击 dgv.EditMode =DataGridViewEditMode.EditOnEnter; //DataGridView无默认行 dgv.AllowUserToAddRows = false; C# winform datagridview 无需点击两次即可编辑内嵌控件的方法和删除默认的空行的方法

DataGridView中内置控件常用事件使用心得

checkbox,button,imagebutton使用dataGridView1_CellContentClick private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { tb.Text+=string.Format("\r\n{0},Row:{1},Column:{2}","单元格内容单击!",e.RowIndex,e.ColumnInd

QT内label控件通过opencv显示图像

1.对pro进行配置,使其能够理解opencv. INCLUDEPATH+=d:\opencv249\include\opencv d:\opencv249\include\opencv2 d:\opencv249\include LIBS+=d:\opencv249\lib\libopencv_calib3d249.dll.a d:\opencv249\lib\libopencv_contrib249.dll.a d:\opencv249\lib\libopencv_core249.dll.a

C# winform datagridview 内嵌控件值改变后立即触发事件,而不需要离开该单元格时才触发,此时需要用到dgv_CurrentCellDirtyStateChanged事件

以下是参考代码 //datagridview内嵌控件值修改事件 private void dgv_CurrentCellDirtyStateChanged(object sender, EventArgs e) { if (dgv.IsCurrentCellDirty) { dgv.CurrentCellDirtyStateChanged -= dgv_CurrentCellDirtyStateChanged; dgv.CommitEdit(DataGridViewDataErrorContex

【安卓】给gallery内&amp;quot;控件&amp;quot;挂载事件,滑动后抬起手指时也触发事件(滑动时不应触发)的解决、!

思路: 1.gallery内控件挂载事件(如:onClickListener)的方法类似listview,可直接在baseAdapter.getView内给控件挂载(详细方法百度). 2.貌似没问题,但滑动后(手指在挂载了事件的控件上)抬起手指时仍会触发事件,这是不正确的. 解决方法时,若为滑动(x有偏移),则在gallery.onInterceptTouchEvent中拦截事件,子控件自然接受不到事件. 注:1>不能简单的推断x有偏移就拦截,有些设备犯贱,即使原地抬起也有可能有偏移,此时本应触

FlowLayoutPanel 内的控件怎么调换顺序?

lowLayoutPanel1.Controls.SetChildIndex("flowLayoutPanel中的控件",顺序索引) FlowLayoutPanel 内的控件怎么调换顺序?

Asp.net 恢复页面内用户控件内的控件ClientID

众所周知在Asp.net中如果一个页面添加了一个用户控件(或母版页),那么用户控件内的控件的   ClientID号会被自动添加页面中用户控件的ClientID 即页面中的控件内的控件ClientID=用户控件id号+"_"+用户控件内控件的id号 说的太绕了,还是看下例子吧 在一个asp.net页面index.aspx中添加了一个head.ascx用户控件id号为"head1" head.ascx控件中有一个input#hid_name控件 那么index.asp

关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application &#39;UIKitApplication:xxx.xxx.xxx&#39; was killed by jetsam.

问题:公司用的腾讯问卷系统,内嵌在我们应用或游戏的自定义UIWebView里面展示,发现在iOS 10 以下系统,点击圆形勾选框 会大概率出现闪退. 通过联调发现:报了这样一个警告Application 'UIKitApplication:xxx.xxx.xxx' was killed by jetsam. 然后没有更多的信息了. (连接真机调试,当发生闪退的时候,设备会同时跟Xcode断开连接,没有更多的错误堆栈,另外设备也没有记录下更多的Crash log 提供定位.) 最后从以下获取到近似