ControlDesigner.ViewControl Proprietà

Definizione

Ottiene o imposta un controllo server Web che può essere utilizzato per visualizzare in anteprima il markup HTML Design-Time.

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

Valore della proprietà

Oggetto Control utilizzato dalla classe di base per generare il markup HTML Design-Time.

Esempio

Nell'esempio di codice seguente viene illustrato come contrassegnare una finestra di progettazione controlli con l'attributo SupportsPreviewControlAttribute . L'esempio di codice deriva un controllo server Web dalla classe e associa il controllo a un'implementazione personalizzata della Label finestra di progettazione controlli. La dichiarazione della classe della finestra di progettazione controlli è contrassegnata con l'attributo SupportsPreviewControl impostato su true. La finestra di progettazione controlli esegue GetDesignTimeHtml l'override del metodo e quindi visualizza la Text proprietà del controllo in corsivo in fase di progettazione.

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

Commenti

La ViewControl proprietà usa la proprietà per determinare il UsePreviewControl relativo valore restituito.

Se la proprietà è true, la ViewControlUsePreviewControl proprietà restituisce una copia temporanea del controllo. Le modifiche apportate al controllo temporaneo non vengono mantenute.

Se la proprietà è false, la ViewControlUsePreviewControl proprietà restituisce un'istanza della Component proprietà per il controllo. Le modifiche apportate all'istanza del controllo vengono mantenute.

L'impostazione SupportsPreviewControl nell'oggetto SupportsPreviewControlAttribute viene usata per impostare il valore della UsePreviewControl proprietà. Pertanto, l'impostazione SupportsPreviewControl determina il tipo di controllo restituito dalla ViewControl proprietà nella classe base ControlDesigner . Se non SupportsPreviewControlAttribute è specificato nella dichiarazione della finestra di progettazione controlli, il ControlDesigner comportamento dell'oggetto equivale a specificare la SupportsPreviewControl proprietà come false.

Si applica a

Vedi anche