附件: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相关推荐

  1. vbseltext_VB编程技巧之selstart, sellength,seltext属性

    VB编程技巧之selstart, sellength,seltext属性 - 使用 TextBox 中的文本 利用 TextBox 的 SelStart.SelLength 和 SelText 属性, ...

  2. delphi查找对话框

    procedure TForm1.FindDialog1Find(Sender: TObject); var   FoundAt: LongInt;   StartPos, ToEnd: Intege ...

  3. VCL组件之公用对话框组件

    公用对话框是一类非可视的组件,它们都由TDialog类继承而来,存在Dialogs组件面板上.包括: TOpenDialog--打开文件对话框组件,用它选择文件和浏览目录 TSaveDialog--保 ...

  4. Delphi----DELPHI常用函数集及简要范例(转载大富翁)

    KeyLife富翁笔记   作者 : nakata_wang 标题 : DELPHI常用函数集及简要范例 关键字: HELP Functions 函数集 简要范例 分类 : 个人专区 密级 : 公开 ...

  5. DELPHI常用函数集及简要范例(转载大富翁)

    KeyLife富翁笔记   作者 : nakata_wang 标题 : DELPHI常用函数集及简要范例 关键字: HELP Functions 函数集 简要范例 分类 : 个人专区 密级 : 公开 ...

  6. DELPHI 函数集

    abs(x)    绝对值 arctan(x) 反正切 cos(x)    传回馀弦函数值 exp(x)    e的x次幂 frac(x)   取小数部分 int(x)    取整 ln(x)     ...

  7. webbrowser1 脚本报错_c# winform程序 webBrowser 当前页面的脚本发生异常 找不到成员...

    c# winform程序 webBrowser 当前页面的脚本发生错误 找不到成员 本帖最后由 yz2653410 于 2014-01-11 21:03:25 编辑 以下为页面代码 using Sys ...

  8. c#WebBrowser进阶

    WebBrowser的基本功能就是访问网页,但是由于它本身就不在主线程上面,所以程序判断它什么时候加载完成了,比较麻烦.为此我集合从网上找到的内容,做了一个例子. 其中包括了给WebBrowser设置 ...

  9. Silverlight 4 WebBrowser的使用及调用 WebBrowser 中的 javascript 方法

    下面是MSDN的使用说明: The following example shows how to handle the ScriptNotify event. In this example, the ...

最新文章

  1. Python r‘‘, b‘‘, u‘‘, f‘‘ 的含义
  2. CF809D-Hitchhiking in the Baltic States【FhqTreap】
  3. linux openjdk_OpenJDK作为Linux上的默认Java
  4. java 多目录 编译jar_javac编译多个包下的、依赖其他jar包的java文件
  5. 大学生学编程系列」第五篇:自学编程需要多久才能找到工作?
  6. .NET的委托和匿名函数应用一例
  7. HTTP1.1/2.0与QUIC协议
  8. 基于ECharts+百度地图开发散点扩散图
  9. 给npm加上国内镜像
  10. VB 6.0 可以使用MQTT
  11. 人脸识别Python教学
  12. 《软件体系结构》第二章 软件体系结构建模
  13. 苹果电脑怎么安装计算机一级,苹果系统安装教程,详细教您苹果电脑怎么重装系统...
  14. 苹果电脑连接打印机操作
  15. 408计算机考研 各科题目题号,2021考研408计算机专业基础综合数据结构试题特点分析...
  16. 【Pyautogui学习】屏幕坐标、鼠标滚动
  17. linux进程监控及管理
  18. 百度地图Geolocation的getStatus状态值(百度API获取当前位置[经纬度])
  19. 海思嵌入式开发-004-Hi3516烧录问题总结
  20. 一例vmware 虚拟机造成局域网游戏魔兽争霸看不到对方

热门文章

  1. Java-POI操作excel清除单元格分行字符
  2. Tensorflow图像通道合并,IndexError: too many indices for array
  3. MyBatis 框架概述
  4. 指针||指针和数组||指针和函数||指针、数组、函数 案例描述:封装一个函数,利用冒泡排序,实现对整型数组的升序排序
  5. MATLAB的左除\和右除/ ??? 自己没有完全明白
  6. 蛋疼的配置go opengl的记录 running gcc failed: exit status 1 in golang in windows
  7. C++——this指针
  8. C# WinForm获取程序所在路径方法
  9. STM32 BOOT0连接不当造成死机
  10. 【STM32】STM32f4学习之路--时钟