Freigeben über


FormViewDesigner.GetDesignTimeHtml Methode

Definition

Ruft das Markup ab, das zum Rendern des zugeordneten Steuerelements zur Entwurfszeit verwendet wird.

public:
 override System::String ^ GetDesignTimeHtml();
public override string GetDesignTimeHtml ();
override this.GetDesignTimeHtml : unit -> string
Public Overrides Function GetDesignTimeHtml () As String

Gibt zurück

Ein String, der das Markup enthält, mit dem der FormView zur Entwurfszeit gerendert wird.

Beispiele

Das folgende Codebeispiel zeigt, wie die GetDesignTimeHtml -Methode in einer Klasse überschrieben wird, die von der FormViewDesigner -Klasse geerbt wird, um die Darstellung des Steuerelements FormView zur Entwurfszeit zu ändern. Im Beispiel wird dem Raster eine neue erste Zeile hinzugefügt, die die Caption -Eigenschaft enthält, wenn definiert Caption ist. Wenn die BorderStyle Eigenschaft des Steuerelements, das von abgeleitet FormView wird, der NotSet -Wert oder None ist, zeichnet einen GetDesignTimeHtml blauen gestrichelten Rahmen um das Steuerelement, um dessen Ausdehnung sichtbarer zu machen. Das Beispiel ändert die Laufzeitdarstellung des Steuerelements nicht.

// Generate the design-time markup.
const string capTag = "caption";
const string trOpen = "tr><td colspan=9 align=center";
const string trClose = "td></tr";

public override string GetDesignTimeHtml()
{
    // Make the full extent of the control more visible in the designer.
    // If the border style is None or NotSet, change the border to
    // a wide, blue, dashed line. Include the caption within the border.
    MyFormView myGV = (MyFormView)Component;
    string markup = null;
    int charX;

    // Check if the border style should be changed.
    if (myGV.BorderStyle == BorderStyle.NotSet ||
        myGV.BorderStyle == BorderStyle.None)
    {
        BorderStyle oldBorderStyle = myGV.BorderStyle;
        Unit oldBorderWidth = myGV.BorderWidth;
        Color oldBorderColor = myGV.BorderColor;

        // Set the design-time properties and catch any exceptions.
        try
        {
            myGV.BorderStyle = BorderStyle.Dashed;
            myGV.BorderWidth = Unit.Pixel(3);
            myGV.BorderColor = Color.Blue;

            // Call the base method to generate the markup.
            markup = base.GetDesignTimeHtml();
        }
        catch (Exception ex)
        {
            markup = GetErrorDesignTimeHtml(ex);
        }
        finally
        {
            // Restore the properties to their original settings.
            myGV.BorderStyle = oldBorderStyle;
            myGV.BorderWidth = oldBorderWidth;
            myGV.BorderColor = oldBorderColor;
        }
    }
    else
    {
        // Call the base method to generate the markup.
        markup = base.GetDesignTimeHtml();
    }

    // Look for a <caption> tag.
    if ((charX = markup.IndexOf(capTag)) > 0)
    {
        // Replace the first caption with 
        // "tr><td colspan=9 align=center".
        // It is okay if the colspan exceeds the 
        // number of columns in the table.
        markup = markup.Remove(charX,
            capTag.Length).Insert(charX, trOpen);

        // Replace the second caption with "td></tr".
        if ((charX = markup.IndexOf(capTag, charX)) > 0)
            markup = markup.Remove(charX,
                capTag.Length).Insert(charX, trClose);
    }
    return markup;
} // GetDesignTimeHtml
' Generate the design-time markup.
Private Const capTag As String = "caption"
Private Const trOpen As String = "tr><td colspan=9 align=center"
Private Const trClose As String = "td></tr"

Public Overrides Function GetDesignTimeHtml() As String

    ' Make the full extent of the control more visible in the designer.
    ' If the border style is None or NotSet, change the border to
    ' a wide, blue, dashed line. Include the caption within the border.
    Dim myGV As MyFormView = CType(Component, MyFormView)
    Dim markup As String = Nothing
    Dim charX As Integer

    ' Check if the border style should be changed.
    If (myGV.BorderStyle = BorderStyle.NotSet Or _
        myGV.BorderStyle = BorderStyle.None) Then

        Dim oldBorderStyle As BorderStyle = myGV.BorderStyle
        Dim oldBorderWidth As Unit = myGV.BorderWidth
        Dim oldBorderColor As Color = myGV.BorderColor

        ' Set the design-time properties and catch any exceptions.
        Try
            myGV.BorderStyle = BorderStyle.Dashed
            myGV.BorderWidth = Unit.Pixel(3)
            myGV.BorderColor = Color.Blue

            ' Call the base method to generate the markup.
            markup = MyBase.GetDesignTimeHtml()

        Catch ex As Exception
            markup = GetErrorDesignTimeHtml(ex)

        Finally
            ' Restore the properties to their original settings.
            myGV.BorderStyle = oldBorderStyle
            myGV.BorderWidth = oldBorderWidth
            myGV.BorderColor = oldBorderColor
        End Try

    Else
        ' Call the base method to generate the markup.
        markup = MyBase.GetDesignTimeHtml()
    End If

    ' Look for a <caption> tag.
    charX = markup.IndexOf(capTag)
    If charX > 0 Then

        ' Replace the first caption with 
        ' "tr><td colspan=9 align=center".
        ' It is okay if the colspan exceeds the 
        ' number of columns in the table.
        markup = markup.Remove(charX, _
            capTag.Length).Insert(charX, trOpen)

        ' Replace the second caption with "td></tr".
        charX = markup.IndexOf(capTag, charX)
        If charX > 0 Then
            markup = markup.Remove(charX, _
                capTag.Length).Insert(charX, trClose)
        End If
    End If

    Return markup

End Function ' GetDesignTimeHtml

Hinweise

Wenn eine Elementvorlage für das FormView Steuerelement definiert wurde, legt die GetDesignTimeHtml Methode die DataKeyNames Auflistung des Steuerelements auf ein leeres String Array fest, wenn das Schema für die Datenquelle nicht abgerufen werden kann. Der GetDesignTimeHtml aktualisiert das TypeDescriptor -Objekt, um einen Aufruf der -Methode zu erzwingen PreFilterProperties . Ruft GetDesignTimeHtml dann die Basismethode auf, um das Markup zu generieren.

Wenn keine Elementvorlage für das FormView Steuerelement definiert wurde, ruft die GetDesignTimeHtml - GetEmptyDesignTimeHtml Methode auf, um Markup zu generieren, das in einem Platzhalter gerendert wird.

Hinweise für Vererber

Wenn Sie die GetDesignTimeHtml() -Methode überschreiben, achten Sie darauf, die Basismethode aufzurufen, da sie schließlich über mehrere Überschreibungsebenen das FormView Steuerelement oder eine Kopie des FormView Steuerelements aufruft, um das Markup zu generieren.

Gilt für:

Weitere Informationen