ControlDesigner.ViewControl Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 true
festgelegt 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
.