HtmlElement Class

Definition

Represents an HTML element inside of a Web page.

public ref class HtmlElement sealed
public sealed class HtmlElement
type HtmlElement = class
Public NotInheritable Class HtmlElement
Inheritance
HtmlElement

Examples

The following code example shows how to examine an arbitrary HTML document and derive a string describing the HTML elements, with indentation and level numbers used to indicate how deeply nested the elements are in the document. This code example requires that your application hosts a WebBrowser control named WebBrowser1.

private void PrintDomBegin()
{
    if (webBrowser1.Document != null)
    {
        HtmlElementCollection elemColl = null;
        HtmlDocument doc = webBrowser1.Document;
        if (doc != null)
        {
            elemColl = doc.GetElementsByTagName("HTML");
            String str = PrintDom(elemColl, new System.Text.StringBuilder(), 0);
            webBrowser1.DocumentText = str;
        }
    }
}

private string PrintDom(HtmlElementCollection elemColl, System.Text.StringBuilder returnStr, Int32 depth)
{
    System.Text.StringBuilder str = new System.Text.StringBuilder();

    foreach (HtmlElement elem in elemColl)
    {
        string elemName;

        elemName = elem.GetAttribute("ID");
        if (elemName == null || elemName.Length == 0)
        {
            elemName = elem.GetAttribute("name");
            if (elemName == null || elemName.Length == 0)
            {
                elemName = "<no name>";
            }
        }

        str.Append(' ', depth * 4);
        str.Append(elemName + ": " + elem.TagName + "(Level " + depth + ")");
        returnStr.AppendLine(str.ToString());

        if (elem.CanHaveChildren)
        {
            PrintDom(elem.Children, returnStr, depth + 1);
        }

        str.Remove(0, str.Length);
    }

    return (returnStr.ToString());
}
Private Sub PrintDomBegin()
    If (WebBrowser1.Document IsNot Nothing) Then
        Dim ElemColl As HtmlElementCollection

        Dim Doc As HtmlDocument = WebBrowser1.Document
        If (Not (Doc Is Nothing)) Then
            ElemColl = Doc.GetElementsByTagName("HTML")
            Dim Str As String = PrintDom(ElemColl, New System.Text.StringBuilder(), 0)

            WebBrowser1.DocumentText = Str
        End If
    End If
End Sub

Private Function PrintDom(ByVal ElemColl As HtmlElementCollection, ByRef ReturnStr As System.Text.StringBuilder, ByVal Depth As Integer) As String
    Dim Str As New System.Text.StringBuilder()

    For Each Elem As HtmlElement In ElemColl
        Dim ElemName As String

        ElemName = Elem.GetAttribute("ID")
        If (ElemName Is Nothing Or ElemName.Length = 0) Then
            ElemName = Elem.GetAttribute("name")
            If (ElemName Is Nothing Or ElemName.Length = 0) Then
                ElemName = "<no name>"
            End If
        End If

        Str.Append(CChar(" "), Depth * 4)
        Str.Append(ElemName & ": " & Elem.TagName & "(Level " & Depth & ")")
        ReturnStr.AppendLine(Str.ToString())

        If (Elem.CanHaveChildren) Then
            PrintDom(Elem.Children, ReturnStr, Depth + 1)
        End If

        Str.Remove(0, Str.Length)
    Next

    PrintDom = ReturnStr.ToString()
End Function

Remarks

HtmlElement represents any possible type of element in an HTML document, such as BODY, TABLE, and FORM, among others. The class exposes the most common properties you can expect to find on all elements.

Most elements can have child elements: other HTML elements that are placed underneath them. Use the CanHaveChildren property to test whether a given element has children, and the Children collection to iterate through them. The Parent property returns the HtmlElement in which the current element is nested.

You often need access to attributes, properties, and methods on the underlying element that are not directly exposed by HtmlElement, such as the SRC attribute on an IMG element or the Submit method on a FORM. The GetAttribute and SetAttribute methods enable you to retrieve and alter any attribute or property on a specific element, while InvokeMember provides access to any methods not exposed in the managed Document Object Model (DOM). If your application has unmanaged code permission, you can also access unexposed properties and methods with the DomElement attribute.

Use the TagName property to test whether an element is of a specific type.

Any HTML document can be modified at run time. You can create new HtmlElement objects with the CreateElement method of HtmlDocument, and add them to another element using the AppendChild or InsertAdjacentElement methods. You can also create the elements as HTML tags and assign them to an existing element's InnerHtml property.

Properties

All

Gets an HtmlElementCollection of all elements underneath the current element.

CanHaveChildren

Gets a value indicating whether this element can have child elements.

Children

Gets an HtmlElementCollection of all children of the current element.

ClientRectangle

Gets the bounds of the client area of the element in the HTML document.

Document

Gets the HtmlDocument to which this element belongs.

DomElement

Gets an unmanaged interface pointer for this element.

Enabled

Gets or sets whether the user can input data into this element.

FirstChild

Gets the next element below this element in the document tree.

Id

Gets or sets a label by which to identify the element.

InnerHtml

Gets or sets the HTML markup underneath this element.

InnerText

Gets or sets the text assigned to the element.

Name

Gets or sets the name of the element.

NextSibling

Gets the next element at the same level as this element in the document tree.

OffsetParent

Gets the element from which OffsetRectangle is calculated.

OffsetRectangle

Gets the location of an element relative to its parent.

OuterHtml

Gets or sets the current element's HTML code.

OuterText

Gets or sets the current element's text.

Parent

Gets the current element's parent element.

ScrollLeft

Gets or sets the distance between the edge of the element and the left edge of its content.

ScrollRectangle

Gets the dimensions of an element's scrollable region.

ScrollTop

Gets or sets the distance between the edge of the element and the top edge of its content.

Style

Gets or sets a semicolon-delimited list of styles for the current element.

TabIndex

Gets or sets the location of this element in the tab order.

TagName

Gets the name of the HTML tag.

Methods

AppendChild(HtmlElement)

Adds an element to another element's subtree.

AttachEventHandler(String, EventHandler)

Adds an event handler for a named event on the HTML Document Object Model (DOM).

DetachEventHandler(String, EventHandler)

Removes an event handler from a named event on the HTML Document Object Model (DOM).

Equals(Object)

Tests if the supplied object is equal to the current element.

Focus()

Puts user input focus on the current element.

GetAttribute(String)

Retrieves the value of the named attribute on the element.

GetElementsByTagName(String)

Retrieves a collection of elements represented in HTML by the specified HTML tag.

GetHashCode()

Serves as a hash function for a particular type.

GetType()

Gets the Type of the current instance.

(Inherited from Object)
InsertAdjacentElement(HtmlElementInsertionOrientation, HtmlElement)

Insert a new element into the Document Object Model (DOM).

InvokeMember(String)

Executes an unexposed method on the underlying DOM element of this element.

InvokeMember(String, Object[])

Executes a function defined in the current HTML page by a scripting language.

MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
RaiseEvent(String)

Causes the named event to call all registered event handlers.

RemoveFocus()

Removes focus from the current element, if that element has focus.

ScrollIntoView(Boolean)

Scrolls through the document containing this element until the top or bottom edge of this element is aligned with the document's window.

SetAttribute(String, String)

Sets the value of the named attribute on the element.

ToString()

Returns a string that represents the current object.

(Inherited from Object)

Operators

Equality(HtmlElement, HtmlElement)

Compares two elements for equality.

Inequality(HtmlElement, HtmlElement)

Compares two HtmlElement objects for inequality.

Events

Click

Occurs when the user clicks on the element with the left mouse button.

DoubleClick

Occurs when the user clicks the left mouse button over an element twice, in rapid succession.

Drag

Occurs when the user drags text to various locations.

DragEnd

Occurs when a user finishes a drag operation.

DragLeave

Occurs when the user is no longer dragging an item over this element.

DragOver

Occurs when the user drags text over the element.

Focusing

Occurs when the element first receives user input focus.

GotFocus

Occurs when the element has received user input focus.

KeyDown

Occurs when the user presses a key on the keyboard.

KeyPress

Occurs when the user presses and releases a key on the keyboard.

KeyUp

Occurs when the user releases a key on the keyboard.

LosingFocus

Occurs when the element is losing user input focus.

LostFocus

Occurs when the element has lost user input focus.

MouseDown

Occurs when the user presses a mouse button.

MouseEnter

Occurs when the user first moves the mouse cursor over the current element.

MouseLeave

Occurs when the user moves the mouse cursor off of the current element.

MouseMove

Occurs when the user moves the mouse cursor across the element.

MouseOver

Occurs when the mouse cursor enters the bounds of the element.

MouseUp

Occurs when the user releases a mouse button.

Applies to

See also