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 ;
- }
- }
设置webBrowser光标的位置
请看这个 选中指定的字符串 设置length=0,设置start的值就是光标的所在的位置
- webBrowser1.Document.Focus();
- setSelection(webBrowser1, , );
获得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这个位置使用功能引起错误
- }
- }
选中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", -); //光标移动到第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 ;
- }
- }
- /*
- 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这个位置使用功能引起错误
- }
- }
- /*
- 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", -); //光标移动到第0位处
- range.moveStart("character", start);
- range.moveEnd("character", length);
- range.select();
- }
- //选中指定的字符串
- private void button1_Click(object sender, EventArgs e)
- {
- webBrowser1.Document.Focus();
- setSelection(webBrowser1, , );
- }
- //光标所在的位置
- 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, , );
- }
- }
- }
这是翻译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>"
webbrowser selstart selLength的更多相关文章
- DBGridEh 在粘贴中文时出现乱码和错位 100zhx_888]
http://www.fx114.net/qa-29-3439.aspx 回复于: -- :: unit DBGridEh; 把下面这个函数替换成这样 procedure TDBGridInplace ...
- VBA精彩代码分享-1
今天下班前分享一下之前在网上搜到的两段好用的VBA代码,貌似都来自国外,觉得挺好,模仿不来. 第一段的功能是修改VBA控件中的文本框控件,使其右键可以选择粘贴.复制.剪切等: Option Expli ...
- Delphi 字符串函数 StrUtils(大全)
引用单元: StrUtils; 首部 function AnsiResemblesText(const AText, AOther: string): Boolean; $[StrUtils.pas ...
- c#如何判断webbrowser已经加载完毕
最近有个小程序需要采集网页源代码,但有的网页中JS脚本又会生成额外的代码,比如http://www.cnblogs.com/lidabo/p/4169396.html 红框部分便是另外加载的代码. 此 ...
- 【手记】WebBrowser响应页面中的blank开新窗口及window.close关闭本窗体
注:本文适用.net 2.0+的winform项目 目的: 点击页面中的target="_blank"链接时,弹出新窗体 页面中有window.close()操作时,关闭窗体 上述 ...
- WPF 开发 WebBrowser
WebBrowser WebBrowser 报错如何屏蔽 CEF(Chromium Embedded Framework) 参考 WPF, Chrome Embedded and WebA ...
- C# Webbrowser 常用方法及多线程调用
设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...
- C#中的WebBrowser控件的使用
0.常用方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(st ...
- 【总结】使用WebBrowser遇到的陷阱
一.前言 一直想用WebBrowser做一些好玩的东西,比如抓取分析感兴趣的网站页面.自动点击提交页面等,所以最近在研究WebBrowser.WebBrowser的功能十分强大,就是一个微型的Brow ...
随机推荐
- 关于js小数计算的问题
在js浮点运算中 var a=0.2-0.1; var b=0.3-0.2; console.log(a==b); 答案是什么呢,很多人可能认为是true,包括我在内,但是当我写出来运行了一下,我被答 ...
- VS2010升级VS2012必备(MVC4 WebPage2.0 Razor2.0资料汇集)
刚把项目升级到2012,发现发生了很多变化,以下是最近看过的网站和资料汇集,供需要者参考. 本文在最近一个月可能会不断更新. Razor2.0 新特性介绍: 介绍1:http://vibrantcod ...
- backbone csdn
http://blog.csdn.net/the_fire/article/details/7444067 blog.csdn.net/the_fire/article/details/7445448 ...
- Java运算符(一)equals方法与“==”
超类Object的equals只是比较两者之间的引用对象是否相同,这一点跟操作符“==”是一样的. 在基本数据类型中,“==”用于比较两者之间的值(内容)是否相等. 在引用类型中,“==”用于比较两者 ...
- 李洪强iOS开发之-环信02.3_具体接口讲解 - Apple Docs
http://www.easemob.com/apidoc/ios/chat3.0/annotated.html Apple Docs.
- [wikioi]能量项链
http://wikioi.com/problem/1154/ 这是石子归并的加强版,基本就是分治法的DP.但是有了个环,因为任何一个位置都可开始,所以就建立2*N的数组,然后对可能的区间遍历一次,就 ...
- BOM的来源是不可能出现的字符,GB2312双字节高位都是1,Unicode理论的根本缺陷导致UTF8的诞生
Unicode字符编码规范 http://www.aoxiang.org 2006-4-2 10:48:02Unicode是一种字符编码规范 . 先从ASCII说起.ASCII是用来表示英文字符的 ...
- SpringMVC源码解析 - HandlerMethod
HandlerMethod及子类主要用于封装方法调用相关信息,子类还提供调用,参数准备和返回值处理的职责. 分析下各个类的职责吧(顺便做分析目录): HandlerMethod 封装方法定义相关的信息 ...
- Super Phyllis(穷举+搜索)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2723 题意:给出一些字符串u,v,代表u-&g ...
- 【2012.1.24更新】不要再在网上搜索eclipse的汉化包了!
转自:http://blog.csdn.net/gqqnb/article/details/6412364 2012.1.24更新 增加了“安装方法” eclipse是一个程序开发平台,它本身并不限制 ...