ControlDesigner.ViewControl Eigenschaft

Definition

Ruft ein Webserversteuerelement ab, das für eine Vorschau des Entwurfszeit-HTML-Markups verwendet werden kann, oder legt dieses fest.Gets or sets a Web server control that can be used for previewing the design-time HTML markup.

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

Control

Ein Control-Objekt, das von der Basisklasse zum Generieren von Entwurfszeit-HTML-Markup verwendet wird.A Control object used by the base class to generate design-time HTML markup.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein Steuerelement-Designer mit dem-Attribut markiert wird SupportsPreviewControlAttribute .The following code example demonstrates how to mark a control designer with the SupportsPreviewControlAttribute attribute. Das Codebeispiel leitet ein Webserver-Steuerelement von der Label -Klasse ab und ordnet das Steuerelement einer benutzerdefinierten Steuerelement-Designer-Implementierung zu.The code example derives a Web server control from the Label class and associates the control with a custom control designer implementation. Die Klassen Deklaration des Steuerelement-Designers ist mit dem SupportsPreviewControl auf festgelegten-Attribut gekennzeichnet trueThe control designer class declaration is marked with the SupportsPreviewControl attribute set to true. Der Steuerelement-Designer überschreibt die GetDesignTimeHtml -Methode und zeigt dann die- Text Eigenschaft des-Steuer Elements zur Entwurfszeit in kursiv Schrift an.The control designer overrides the GetDesignTimeHtml method, and then displays the Text property of the control in italic at design time.

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 den Rückgabewert zu bestimmen.The ViewControl property uses the UsePreviewControl property to determine its return value.

Wenn die- UsePreviewControl Eigenschaft ist true , ViewControl gibt die-Eigenschaft eine temporäre Kopie des Steuer Elements zurück.If the UsePreviewControl property is true, the ViewControl property returns a temporary copy of the control. Änderungen am temporären Steuerelement werden nicht beibehalten.Changes to the temporary control are not persisted.

Wenn die- UsePreviewControl Eigenschaft ist false , ViewControl gibt die-Eigenschaft eine Instanz der- Component Eigenschaft für das-Steuerelement zurück.If the UsePreviewControl property is false, the ViewControl property returns an instance of the Component property for the control. Änderungen an der Instanz des Steuer Elements werden persistent gespeichert.Changes to the instance of the control are persisted.

Die- SupportsPreviewControl Einstellung im- SupportsPreviewControlAttribute Objekt wird verwendet, um den Wert der-Eigenschaft festzulegen UsePreviewControl .The SupportsPreviewControl setting in the SupportsPreviewControlAttribute object is used to set the value of the UsePreviewControl property. Daher bestimmt die- SupportsPreviewControl Einstellung den Typ des Steuer Elements, das von der- ViewControl Eigenschaft in der Basisklasse zurückgegeben wird ControlDesigner .Therefore, the SupportsPreviewControl setting determines the type of control that is returned by the ViewControl property in the base ControlDesigner class. Wenn SupportsPreviewControlAttribute in der Steuerelement-Designer-Deklaration nicht angegeben ist, ControlDesigner entspricht das Objekt Verhalten dem Angeben der- SupportsPreviewControl Eigenschaft als false .If the SupportsPreviewControlAttribute is not specified in the control designer declaration, the ControlDesigner object behavior is equivalent to specifying the SupportsPreviewControl property as false.

Gilt für:

Siehe auch