webbrowser selstart selLength
附件:http://files.cnblogs.com/xe2011/Webbrowser_SelStart.rar
1 获得webBrowser光标所在的位置
2 设置webBrowser光标的位置
3 获得webBrowser选中的文本长度
4 选中webBrowser指定的字符串
项目添加引用Microsoft.mshtml
单元引用
using mshtml;
获得webBrowser光标所在的位置
当有文本被选中时返回 的位置应为当 getSelectionStart() - getSelectionLength()/*function getSelectionStart(){var range=document.selection.createRange();range.moveStart('character', -document.body.innerText.length);return range.text.length;}*/private int getSelectionStart(WebBrowser webBrowser){try{IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();range.moveStart("character", -document.body.innerText.Length);return range.text.Length;}catch (System.Exception ex){//MessageBox.Show(ex.Message);//当光标在0这个位置使用功能引起错误return 0;}}
设置webBrowser光标的位置
请看这个 选中指定的字符串 设置length=0,设置start的值就是光标的所在的位置
webBrowser1.Document.Focus();setSelection(webBrowser1, 6, 0);
获得webBrowser选中的文本长度
/*function getSelectionLength(){return document.selection.createRange().text.length;}*/private int getSelectionLength(WebBrowser webBrowser){try{IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();return range.text.Length;}catch (System.Exception ex){return 0;//当光标在0这个位置使用功能引起错误 }}
选中webBrowser指定的字符串
/* function setSelection(start,length){var range=document.selection.createRange();range.collapse(true);range.moveStart('character', start);range.moveEnd('character', length);range.select();}*/public void setSelection(WebBrowser webBrowser, int start, int length){IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();range.collapse(true);range.move("textedit", -1); //光标移动到第0位处range.moveStart("character", start);range.moveEnd("character", length);range.select();}
完整代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using mshtml;namespace WindowsFormsApplication1 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){webBrowser1.DocumentText = @"2013-12-07 19:14:20";webBrowser1.Document.ExecCommand("EditMode", false, null);}/*function getSelectionStart(){var range=document.selection.createRange();range.moveStart('character', -document.body.innerText.length);return range.text.length;}*/private int getSelectionStart(WebBrowser webBrowser){try{IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();range.moveStart("character", -document.body.innerText.Length);return range.text.Length;}catch (System.Exception ex){//MessageBox.Show(ex.Message);//当光标在0这个位置使用功能引起错误return 0;}}/*function getSelectionLength(){return document.selection.createRange().text.length;}*/private int getSelectionLength(WebBrowser webBrowser){try{IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();return range.text.Length;}catch (System.Exception ex){return 0;//当光标在0这个位置使用功能引起错误 }}/* function setSelection(start,length){var range=document.selection.createRange();range.collapse(true);range.moveStart('character', start);range.moveEnd('character', length);range.select();}*/public void setSelection(WebBrowser webBrowser, int start, int length){IHTMLDocument2 document = (IHTMLDocument2)webBrowser.Document.DomDocument;IHTMLTxtRange range = (IHTMLTxtRange)document.selection.createRange();range.collapse(true);range.move("textedit", -1); //光标移动到第0位处range.moveStart("character", start);range.moveEnd("character", length);range.select();}//选中指定的字符串private void button1_Click(object sender, EventArgs e){webBrowser1.Document.Focus();setSelection(webBrowser1, 0, 4);}//光标所在的位置private void button2_Click(object sender, EventArgs e){webBrowser1.Document.Focus();int i = (int)getSelectionStart(webBrowser1);Text = i.ToString();}//选中的字符串长度private void button3_Click(object sender, EventArgs e){webBrowser1.Document.Focus();Text = getSelectionLength(webBrowser1).ToString();}//设置光标的位置private void button4_Click(object sender, EventArgs e){webBrowser1.Document.Focus();setSelection(webBrowser1, 6, 0);}} }
View Code
这是翻译JAVA SCRIPT的代码
"<script> function getCommandValue(commandId){return document.queryCommandValue(commandId); } function getSelectionStart(){var range=document.selection.createRange();range.moveStart('character', -document.body.innerText.length);return range.text.length; } function getSelectionLength(){return document.selection.createRange().text.length; } function setSelection(start,length){var range=document.selection.createRange();range.collapse(true);range.moveStart('character', start);range.moveEnd('character', length);range.select(); } </script>"
View Code
转载于:https://www.cnblogs.com/xe2011/p/3463124.html
webbrowser selstart selLength相关推荐
- vbseltext_VB编程技巧之selstart, sellength,seltext属性
VB编程技巧之selstart, sellength,seltext属性 - 使用 TextBox 中的文本 利用 TextBox 的 SelStart.SelLength 和 SelText 属性, ...
- delphi查找对话框
procedure TForm1.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Intege ...
- VCL组件之公用对话框组件
公用对话框是一类非可视的组件,它们都由TDialog类继承而来,存在Dialogs组件面板上.包括: TOpenDialog--打开文件对话框组件,用它选择文件和浏览目录 TSaveDialog--保 ...
- Delphi----DELPHI常用函数集及简要范例(转载大富翁)
KeyLife富翁笔记 作者 : nakata_wang 标题 : DELPHI常用函数集及简要范例 关键字: HELP Functions 函数集 简要范例 分类 : 个人专区 密级 : 公开 ...
- DELPHI常用函数集及简要范例(转载大富翁)
KeyLife富翁笔记 作者 : nakata_wang 标题 : DELPHI常用函数集及简要范例 关键字: HELP Functions 函数集 简要范例 分类 : 个人专区 密级 : 公开 ...
- DELPHI 函数集
abs(x) 绝对值 arctan(x) 反正切 cos(x) 传回馀弦函数值 exp(x) e的x次幂 frac(x) 取小数部分 int(x) 取整 ln(x) ...
- webbrowser1 脚本报错_c# winform程序 webBrowser 当前页面的脚本发生异常 找不到成员...
c# winform程序 webBrowser 当前页面的脚本发生错误 找不到成员 本帖最后由 yz2653410 于 2014-01-11 21:03:25 编辑 以下为页面代码 using Sys ...
- c#WebBrowser进阶
WebBrowser的基本功能就是访问网页,但是由于它本身就不在主线程上面,所以程序判断它什么时候加载完成了,比较麻烦.为此我集合从网上找到的内容,做了一个例子. 其中包括了给WebBrowser设置 ...
- Silverlight 4 WebBrowser的使用及调用 WebBrowser 中的 javascript 方法
下面是MSDN的使用说明: The following example shows how to handle the ScriptNotify event. In this example, the ...
最新文章
- Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
- CF809D-Hitchhiking in the Baltic States【FhqTreap】
- linux openjdk_OpenJDK作为Linux上的默认Java
- java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件
- 大学生学编程系列」第五篇:自学编程需要多久才能找到工作?
- .NET的委托和匿名函数应用一例
- HTTP1.1/2.0与QUIC协议
- 基于ECharts+百度地图开发散点扩散图
- 给npm加上国内镜像
- VB 6.0 可以使用MQTT
- 人脸识别Python教学
- 《软件体系结构》第二章 软件体系结构建模
- 苹果电脑怎么安装计算机一级,苹果系统安装教程,详细教您苹果电脑怎么重装系统...
- 苹果电脑连接打印机操作
- 408计算机考研 各科题目题号,2021考研408计算机专业基础综合数据结构试题特点分析...
- 【Pyautogui学习】屏幕坐标、鼠标滚动
- linux进程监控及管理
- 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])
- 海思嵌入式开发-004-Hi3516烧录问题总结
- 一例vmware 虚拟机造成局域网游戏魔兽争霸看不到对方
热门文章
- Java-POI操作excel清除单元格分行字符
- Tensorflow图像通道合并,IndexError: too many indices for array
- MyBatis 框架概述
- 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序
- MATLAB的左除\和右除/ ??? 自己没有完全明白
- 蛋疼的配置go opengl的记录 running gcc failed: exit status 1 in golang in windows
- C++——this指针
- C# WinForm获取程序所在路径方法
- STM32 BOOT0连接不当造成死机
- 【STM32】STM32f4学习之路--时钟