zoukankan      html  css  js  c++  java
  • HtmlEditor类对象说明之HtmlDocument2

    HtmlDocument2  HTML文档对象模型:

    主要方法有:

      1. GetBody()  获取当前文档Body对象
      2. GetReadyState()   获取当前文档状态信息,如是否正在加载,是否已经完成,枚举值为:uninitialized,loading,loaded,interactive,complete
      3. ExecCommand()   执行命令,如ExecCommand("MultipleSelection", false, true); 表示当前文档允许多选控件
      4. GetSelection()   获取当前选择区域,此方法用于两种场景:

               场景1:用于在当前选中位置插入html代码。

         var selRange = doc2.GetSelection().createRange() as IHTMLTxtRange;
             if (selRange != null){
             selRange.pasteHTML("<input type='text'/>");
       
         }

               场景2:获取当前选中的控件

         var controlRange=doc2.GetSelection().createRange() as IHTMLControlRange;
         if(controlRange!=null){
      
                    var length = controlRange.GetLength();
                    for (int i = 0; i < length;i++ )
                    {
                        var control = controlRange.Item(i);
    
                    }
         }

             5.GetStyleSheets()  获取样式表,进行样式设置

      IHTMLStyleSheetsCollection sheets = CurrentDocument.GetStyleSheets();//获取样式表
                IHTMLStyleSheet sheet = null;
                if (sheets.length == 0)//样式表长度为0,则新增
                {
                    sheet = CurrentDocument.CreateStyleSheet("", 0);
                }
                else //大于0,则获取第一个样式表
                {
                    object i = 0;
                    sheet = sheets.item(ref i) as IHTMLStyleSheet;
                }
                CommonArgs args = new CommonArgs();
                args.Tag = sheet.GetCssText();//获取当前样式表的样式
                HtmlViewCssStyleEditForm styleform = new HtmlViewCssStyleEditForm(args);
                if (styleform.ShowDialog() == DialogResult.OK)
                {
                    try
                    {
                        sheet.SetCssText(args.Tag.ToString());//设置样式
                        _currentFormDesignFormModel.ViewStyleRules.Clear();
                        IHTMLStyleSheetRulesCollection rules = sheet.GetRules();
                        for (int i = 0; i < rules.GetLength(); i++)
                        {
                            var rule = rules.Item(i).GetSelectorText();
                            if (rule.Length > 1 && rule.StartsWith("."))
                            {
                                var gciStyleRule = new GciStyleRule();
                                gciStyleRule.Name = rule.Substring(1);
                                gciStyleRule.RuleText = rules.Item(i).GetStyle().GetCssText();
                                _currentFormDesignFormModel.ViewStyleRules.Add(gciStyleRule);
                            }
                        }
    
                        _currentFormDesignFormModel.CurrentView.ViewCssStyle = args.Tag.ToString();
                    }
                    catch (Exception ex)
                    {
    
                    }
                }
  • 相关阅读:
    从安装、管理到防御_阿里云安骑士全向测评
    云架构师前(钱)景这么好_我们该如何转型?这有两位阿里云云架构总监多年心得
    Infrastructure_as_Code——Kubernetes一键编排实践
    大中华地区(含港澳台)空气质量接口参加阿里云API_as_a_Service_大赛
    E-MapReduce集群启停HDFS/YARN服务
    云服务器ECS还原安全组规则功能介绍_安全组规则的备份与还原
    E-MapReduce集群中HDFS服务集成Kerberos
    FastReport中如何加入自定义函数
    查找算法总结
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/liaotongquan/p/4062295.html
Copyright © 2011-2022 走看看