private void AddRefreshElements(DomElement startElement, DomElement endElement)
        {
            DomContentElement ce  = myContainer.ContentElement;
            DomElementList    res = this.OwnerList.RefreshElements;

            if (res.Contains(startElement) == false)
            {
                res.Add(startElement);
            }
            DomContentLine startLine = null;

            while (startElement != null)
            {
                // 可能存在元素不显示在文档中,例如处于图形模式下的XTextShapeInputFieldElement中,
                // 内容就不显示,在此向上查询显示出来的内容。
                if (ce.PrivateContent.Contains(startElement))
                {
                    startLine = startElement.OwnerLine;
                    if (res.Contains(startElement) == false)
                    {
                        res.Add(startElement);
                    }
                    break;
                }
                startElement = startElement.Parent;
            }//while

            if (res.Contains(endElement) == false)
            {
                res.Add(endElement);
            }
            DomContentLine endLine = null;

            while (endElement != null)
            {
                if (ce.PrivateContent.Contains(endElement))
                {
                    endLine = endElement.OwnerLine;
                    if (res.Contains(endElement) == false)
                    {
                        res.Add(endElement);
                    }
                    break;
                }
                endElement = endElement.Parent;
            }//while

            ce.SetLinesInvalidateState(
                startLine,
                endLine);
        }
Esempio n. 2
0
        /// <summary>
        /// Handle selection changed event in editor control
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void myEditControl_SelectionChanged(object sender, EventArgs e)
        {
            DomContentLine line = myEditControl.Document.CurrentContentElement.CurrentLine;

            if (line != null && line.OwnerPage != null)
            {
                string txt =
                    string.Format("Page:{0} Line:{1} Column:{2}",
                                  Convert.ToString(line.OwnerPage.PageIndex),
                                  Convert.ToString(myEditControl.CurrentLineIndexInPage),
                                  Convert.ToString(myEditControl.CurrentColumnIndex));
                if (myEditControl.Selection.Length != 0)
                {
                    txt = txt + string.Format(
                        " Selected{0}elements",
                        Math.Abs(myEditControl.Selection.Length));
                }
                this.lblPosition.Text = txt;
            }
            UpdateFormText();
        }