该文档已被修改,是否保存修改结果?
是:保存修改结果
否:放弃修改结果
取消:仍打开该文档
 
 
触发这个对话框方法
 
初始化
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("about:blank");
            webBrowser1.Document.Write( "<html><head><title>未命名</title></head><body style=\"margin: 5px\"></body></html>");
            webBrowser1.Document.ExecCommand("EditMode", false, true); 

}

 
加载完成后 在WEBBROWSER中随意输入任何字符  如123
 
然后单击按钮1 
        private void button1_Click(object sender, EventArgs e)
        {
 
            webBrowser1.Navigate("qq.com");
        } 
在执行  webBrowser1.Navigate("qq.com");这句前就会弹出 
 
 
 
 
 
 
解决方法 
 
除了第一次初始化使用 webBrowser1.Navigate 方法外,以后打开文件全用 webBrowser1.Document.Write的方法加载文档(通常是本地的HTML文件,这符合HTML编辑器) 。
这样 这个对话框是不会再出现的,即使内容改变了
        private void Form1_Load(object sender, EventArgs e)
        {
            string HTML_TEXT = "<html><head><title>未命名</title></head><body style=\"margin: 5px\"></body></html>";
            webBrowser1.Navigate("about:blank");
            webBrowser1.Document.OpenNew(true);
            webBrowser1.Document.Write(HTML_TEXT);
            webBrowser1.Document.Focus();
            webBrowser1.Document.ExecCommand("EditMode", false, true);
            IsModified = false;

}

 
加载文档
 
        public void LoadFromFile(string htmfilename)
        {
            webBrowser1.Document.OpenNew(true);
            string html = File.ReadAllText(htmfilename, Encoding.GetEncoding(webBrowser1.Document.Encoding));
            webBrowser1.Document.Write(html);
        }
 
  
 
保存文档
      public void SaveToFile(string htmfilename)
        {
            File.WriteAllText(htmfilename,
                             webBrowser1.DocumentText,
                              Encoding.GetEncoding(webBrowser1.Document.Encoding));

}

 
 
 
文档内容是否改变
这有个问题:当文档中的内容非常多时 由于每隔100毫秒就判断一次 这会使程序一卡一卡的
该文档已被修改,是否保存修改结果 获得文档内容是否改变,要比屏蔽它有更重要的意义
 
定义一个字符串变量 s
string s = webBrowser1.DocumentText;  
 
在一个定时器中判断
如果是下面条件成立   就表示内容已经改变了
webBrowser1.DocumentText != s  
 
设置内容为没改变
s = webBrowser1.DocumentText;  
 
源码
using System;
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)
        {
            string HTML_TEXT = "<html><head><title>未命名</title></head><body style=\"margin: 5px\"></body></html>";
            webBrowser1.Navigate("about:blank");
            webBrowser1.Document.OpenNew(true);
            webBrowser1.Document.Write(HTML_TEXT);
            webBrowser1.Document.Focus();
            webBrowser1.Document.ExecCommand("EditMode", false, true);
            IsModified = false;
        }
 
        private void NewDocument()
        {
            string HTML_TEXT = "<html><head><title>未命名</title></head><body style=\"margin: 5px\"></body></html>";
            webBrowser1.Document.OpenNew(true);
            webBrowser1.Document.Write(HTML_TEXT);
            webBrowser1.Document.Focus();
            webBrowser1.Document.ExecCommand("EditMode", false, true);
            IsModified = false;
        }
 
 
        bool __modified = false;
        bool firsttime = true;
        private  string s ="";
 
 
        /// <summary>
        /// Webbrowser文档内容是否被修改
        /// </summary>
        public bool IsModified
        {
            get
            {
                return __modified;
            }
            set
            {
                __modified = value;
                if (value == false)
                    s = webBrowser1.DocumentText;
            }
        }
       
        private void timer1_Tick(object sender, EventArgs e)
        {
 
 
            #region firsttime 说明
            /*
            这是我的给的HTML
            
            html><head><title>未命名</title></head><body style=\"margin: 5px\"></body></html>
            
            而实际出来的HTML是这样
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
            <HTML><HEAD><TITLE>未命名</TITLE>
            <META content="text/html; charset=unicode" http-equiv=Content-Type>
            <META name=GENERATOR content="MSHTML 11.00.9600.16384"></HEAD>
            <BODY style="MARGIN: 5px"></BODY></HTML>
            */
            #endregion
            if (firsttime == true)
            {
                s = webBrowser1.DocumentText;
                firsttime = false;
            }
 
            //test
            if (webBrowser1.DocumentText != s)
            {
                Text = "内容已被修改";
                richTextBox2.Text = webBrowser1.DocumentText;
            }
            else
            {
                Text = " Form1 ";
                richTextBox1.Text = webBrowser1.DocumentText;
            }
 
 
            //getmodified
            __modified = (webBrowser1.DocumentText != s);
 
        }
 
        //set modify false
        private void button1_Click(object sender, EventArgs e)
        {
            s = webBrowser1.DocumentText;
        }
 
       
 
        private void button2_Click(object sender, EventArgs e)
        {
 
 
            if (IsModified)
            {
                DialogResult d = MessageBox.Show("文档已被修改,是否保存", "编辑器", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
 
                if (d == DialogResult.Yes)
                {
                    MessageBox.Show("File have been saved!");
                }
 
            }
            NewDocument();
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
             webBrowser1.Document.ExecCommand("EditMode", false, true);
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
             webBrowser1.Document.ExecCommand("BrowseMode", false, true);
             s = webBrowser1.DocumentText;
        }
    }
}
 
 
 
 
新建文档
 
打开文档
 
保存文档
 
另存文档
 

12.1 文档相关 Webbrowser 该文档已被修改,是否保存修改结果的更多相关文章

  1. Linux中几个与文档相关的命令

    一.介绍 本文将介绍几个与文档相关的命令 软件环境: 物理机 Windows 8.0 虚拟机 VMware Workstation 12 Linux系统 CentOS 7.3 二.命令cat 命令ca ...

  2. MongoDB(5)- Document 文档相关

    Documents MongoDB 的文档可以理解为关系型数据库(Mysql)的一行记录 MongoDB 将数据记录为 BSON 格式的文档 BSON 是 JSON 文档的二进制表示,但它支持的数据类 ...

  3. xml和xsd架构文档相关知识

    1.使用架构(XSD)验证XML文件 2.使用自动生成工具: 工具目录:C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4. ...

  4. 如何使用ABBYY FineReader 12将JPEG文件转换成Word文档

    日常工作中处理JPEG格式的图像文件时,有时需要转换成Word文档进行编辑,市场上应用而生了很多转换工具,相信不少人听说过OCR(光学字符识别)软件,可以用来转换图像文件,而在OCR软件中, ABBY ...

  5. [Swift通天遁地]七、数据与安全-(8)创建普通PDF文档和加密PDF文档

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  6. 一文搭建自己博客/文档系统:搭建,自动编译和部署,域名,HTTPS,备案等

    本文纯原创,搭建后的博客/文档网站可以参考: Java 全栈知识体系.如需转载请说明原处. 第一部分 - 博客/文档系统的搭建 搭建博客有很多选择,平台性的比如: 知名的CSDN, 博客园, 知乎,简 ...

  7. 百度大脑UNIT3.0解读之对话式文档问答——上传文档获取对话能力

    在日常生活中,用户会经常碰到很多复杂的规章制度.规则条款.比如:乘坐飞机时,能不能带宠物上飞机,3岁小朋友是否需要买票等.在工作中,也会面对公司多样的规定制度和报销政策.比如:商业保险理赔需要什么材料 ...

  8. 如何实现SP文档库类似百度文档库的效果 (副标题:如何在SP2013文档库的SWF文件用FlexPager显示)

    1. 编辑文档库列表显示页面,如下图: 2. 添加内容编辑器,如下图: 3. 添加如下在[内容编辑器中]-[编辑源],添加如下JS代码,如下图: ​ 代码如下: <scrip type=&quo ...

  9. PowerDesigner(九)-模型文档编辑器(生成项目文档)(转)

    模型文档编辑器 PowerDesigner的模型文档(Model  Report)是基于模型的,面向项目的概览文档,提供了灵活,丰富的模型文档编辑界面,实现了设计,修改和输出模型文档的全过程. 模型文 ...

随机推荐

  1. Maven、gradle、Ant、Eclipse IDE

    Maven.gradle.Ant.Eclipse IDE之间的关系 http://wenku.baidu.com/view/d33208810912a21615792910.html?from=sea ...

  2. mappingResources,annotatedClasses(映射)

    这两个是有本质区别的,光看名字也能看出来,哈哈,好了,入正题: mappingResources用于指定少量的hibernate配置文件像这样 Xml代码 1 2 3 4 5 6 7 <prop ...

  3. bzoj1471

    转化补集的思想,首先求出任意两点之间路径数目 然后求两条路径第一次相交在点k(按照拓扑排序的顺序)的数目,显然这里要用到容斥 然后pascal有坑爹的范围检测,所以运算中有些不会影响到答案但会爆int ...

  4. entity framework 查询

    1.简单查询: SQL: SELECT * FROM [Clients] WHERE Type=1 AND Deleted=0 ORDER BY ID EF: //Func形式 var clients ...

  5. JSOI2008星球大战(并查集)

    膜拜HZWER大牛的编码能力! 附上他的代码(我的代码不知为何一直莫名出错……) #include<iostream> #include<cstdio> #include< ...

  6. SCOI2010 and SXOI2014 股票交易(DP)

    明显的单调队列…… 但下面的程序一直有bug 附上题解:http://blog.csdn.net/njlcazl/article/details/8611042 附上我的代码: var head,ta ...

  7. GRIB格式转换心得(转自博客:http://windforestwing.blog.163.com/blog/static/19545412007103084743804/)

    1.wgrib的使用 在cmd命令行下键入wgrib后即可察看wgrib相关命令参数,简要介绍如下: l        Inventory/diagnostic–output selections 详 ...

  8. Beginning Android 4 Programming Book学习

    Chapter 3 EditText不自动获取焦点,自动获取焦点但不显示软键盘  Page 122-123 只有定义了android:id属性的控件在屏幕翻转后状态才会被持久化  Page 133 C ...

  9. linux中的设备名称和设备号

    看赵炯博士的<linux 0.11 源代码注释>已经两三周了,从今天起开始将一些个人总结和感悟分小标题写出来,聊作记忆以供后来查看.在linux0.11源码的 /linux/boot/bo ...

  10. NGINX(一)内存结构

    ngx_buf_t和ngx_chain_t是nginx中操作内存的重要手段, 很多的数据都需要通过这个结构进行保存. 其中ngx_buf_t中保存一块可用内存, ngx_chain_t则是将内存块连接 ...