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à

Control

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 Label classe e associa il controllo a un'implementazione di Progettazione controlli personalizzata. La dichiarazione della classe di Progettazione controlli è contrassegnata con l'attributo SupportsPreviewControl impostato su true. Progettazione controlli esegue l'override del GetDesignTimeHtml 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à utilizza la UsePreviewControl proprietà per determinare il relativo valore restituito.

Se la UsePreviewControl proprietà è true, la ViewControl proprietà restituisce una copia temporanea del controllo. Le modifiche apportate al controllo temporaneo non vengono rese persistenti.

Se la UsePreviewControl proprietà è false, la ViewControl proprietà restituisce un'istanza della Component proprietà per il controllo . Le modifiche apportate all'istanza del controllo vengono rese persistenti.

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

Si applica a

Vedi anche