Freigeben über


ControlDesigner.ViewControl Eigenschaft

Definition

Ruft ein Webserversteuerelement ab, das für eine Vorschau des Entwurfszeit-HTML-Markups verwendet werden kann, oder legt dieses fest.

public:
 property System::Web::UI::Control ^ ViewControl { System::Web::UI::Control ^ get(); void set(System::Web::UI::Control ^ value); };
public System.Web.UI.Control ViewControl { get; set; }
member this.ViewControl : System.Web.UI.Control with get, set
Public Property ViewControl As Control

Eigenschaftswert

Ein Control-Objekt, das von der Basisklasse zum Generieren von Entwurfszeit-HTML-Markup verwendet wird.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Steuerelement-Designer mit dem SupportsPreviewControlAttribute -Attribut markiert wird. Das Codebeispiel leitet ein Webserversteuerelement von der Label -Klasse ab und ordnet das Steuerelement einer benutzerdefinierten Steuerelement-Designer-Implementierung zu. Die Klassendeklaration des Steuerelement-Designers ist mit dem -Attribut gekennzeichnet, das SupportsPreviewControl auf truefestgelegt ist. Der Steuerelement-Designer überschreibt die GetDesignTimeHtml -Methode und zeigt dann die Text -Eigenschaft des Steuerelements zur Entwurfszeit kursiv an.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
using System.Reflection;

namespace ControlDesignerSamples.CS
{
    // Define a simple designer associated with a 
    // simple text web control.
    
    // Mark the designer with the SupportsPreviewControlAttribute set
    // to true.  This means the base.UsePreviewControl returns true,
    // and base.ViewControl returns a temporary preview copy of the control.
    [SupportsPreviewControl(true)]
    public class SimpleTextControlDesigner : TextControlDesigner
    {		
        // Override the base GetDesignTimeHtml method to display 
        // the design time text in italics.
        public override string GetDesignTimeHtml()
        {
            string html = String.Empty;
 
            try
            {
                // Initialize the return string to the default
                // design time html of the base TextControlDesigner.
                html = base.GetDesignTimeHtml();

                // Get the ViewControl for the associated control.
                Label ctrl = (Label)ViewControl;

                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "Italic");
                html = base.GetDesignTimeHtml();
            }
            catch (System.Exception e)
            {
               if (String.IsNullOrEmpty(html))
               {
                   html = GetErrorDesignTimeHtml(e);
               }
            }
            
            return html;
        }
    }

    // Derive a simple Web control from Label to render a text string.
    // Associate this control with the SimpleTextControlDesigner.
    [DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"),
    ToolboxData("<{0}:MyLabelControl Runat=\"Server\"><{0}:MyLabelControl>")]
    public class MyLabelControl : Label
    {
        // Use the Label control implementation, but associate
        // the derived class with the custom control designer.
    }
}
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.Design.WebControls
Imports System.Web.UI.WebControls
Imports System.Reflection

Namespace ControlDesignerSamples.VB

    ' Derive a simple Web control from Label to render a text string.
    ' Associate this control with the SimpleTextControlDesigner.
    <DesignerAttribute("ControlDesignerSamples.CS.SimpleTextControlDesigner"), _
    ToolboxData("<{0}:MyLabelControl Runat=""Server""><{0}:MyLabelControl>")> _
    Public Class MyLabelControl
        Inherits Label

        ' Use the Label control implementation, but associate
        ' the derived class with the custom control designer.
    End Class


    ' Mark the designer with the SupportsPreviewControlAttribute set
    ' to true.  This means the base.UsePreviewControl returns true,
    ' and base.ViewControl returns a temporary preview copy of the control.
    <SupportsPreviewControl(True)> _
    Public Class SimpleTextControlDesigner
        Inherits TextControlDesigner

        ' Override the base GetDesignTimeHtml method to display 
        ' the design time text in italics.
        Public Overrides Function GetDesignTimeHtml() As String
            Dim html As String = String.Empty

            Try
                ' Get the ViewControl for the associated control.
                Dim ctrl As Label = CType(ViewControl, Label)

                ' Set the default text, if necessary
                If ctrl.Text.Length = 0 Then
                    ctrl.Text = "Sample Text"
                End If

                ' Set the style to italic
                ctrl.Style.Add(HtmlTextWriterStyle.FontStyle, "italic")

                ' Let the base class create the HTML markup
                html = MyBase.GetDesignTimeHtml()
            Catch ex As Exception
                If String.IsNullOrEmpty(html) Then
                    ' Display the exception message
                    html = GetErrorDesignTimeHtml(ex)
                End If
            End Try

            Return html
        End Function

    End Class
End Namespace

Hinweise

Die ViewControl -Eigenschaft verwendet die UsePreviewControl -Eigenschaft, um ihren Rückgabewert zu bestimmen.

Wenn die UsePreviewControl -Eigenschaft ist true, gibt die ViewControl -Eigenschaft eine temporäre Kopie des Steuerelements zurück. Änderungen am temporären Steuerelement werden nicht beibehalten.

Wenn die UsePreviewControl -Eigenschaft ist false, gibt die ViewControl -Eigenschaft eine Instanz der Component -Eigenschaft für das Steuerelement zurück. Änderungen an der Instanz des Steuerelements werden beibehalten.

Die SupportsPreviewControl -Einstellung im SupportsPreviewControlAttribute -Objekt wird verwendet, um den Wert der UsePreviewControl -Eigenschaft festzulegen. Daher bestimmt die SupportsPreviewControl Einstellung den Typ des Steuerelements, das von der ViewControl -Eigenschaft in der Basisklasse ControlDesigner zurückgegeben wird. Wenn in SupportsPreviewControlAttribute der Steuerelement-Designer-Deklaration nicht angegeben ist, entspricht das ControlDesigner Objektverhalten der Angabe der SupportsPreviewControl -Eigenschaft als false.

Gilt für:

Weitere Informationen