internal void RaiseFocusEvent(DomElement oldCurrentElement, DomElement newCurrentElement) { DomElementList oldParents = oldCurrentElement == null ? new DomElementList() : WriterUtils.GetParentList2(oldCurrentElement); if (oldCurrentElement != null) { oldParents.Insert(0, oldCurrentElement); } DomElementList newParents = newCurrentElement == null ? new DomElementList() : WriterUtils.GetParentList2(newCurrentElement); if (newCurrentElement != null) { newParents.Insert(0, newCurrentElement); } // 触发旧的容器元素的失去输入焦点事件 foreach (DomElement oldParent in oldParents) { if (newParents.Contains(oldParent) == false) { //((XTextContainerElement)oldParent).OnLostFocus(this, EventArgs.Empty); DocumentEventArgs args2 = new DocumentEventArgs( this.OwnerDocument, oldParent, DocumentEventStyles.LostFocus); oldParent.HandleDocumentEvent(args2); } } // 触发新的容器元素的获得输入焦点事件 foreach (DomElement newParent in newParents) { if (oldParents.Contains(newParent) == false) { //((XTextContainerElement)newParent).OnGotFocus(this, EventArgs.Empty); DocumentEventArgs args2 = new DocumentEventArgs( this.OwnerDocument, newParent, DocumentEventStyles.GotFocus); newParent.HandleDocumentEvent(args2); } } }