ControlDesigner.ActionLists プロパティ
アセンブリ: System.Design (system.design.dll 内)

Dim instance As ControlDesigner Dim value As DesignerActionListCollection value = instance.ActionLists
public: virtual property DesignerActionListCollection^ ActionLists { DesignerActionListCollection^ get () override; }
コントロール デザイナの DesignerActionList 項目を格納している DesignerActionListCollection。


Label コントロールおよび TextBox コントロールが指定された単純な複合コントロールを作成する方法を次のコード例に示します。この 2 つの内部コントロールの Text プロパティ、および TextBox の Width プロパティと BackColor プロパティを設定するためのプロパティも指定しています。関連付けられたコントロール デザイナ クラスは、3 つの DesignerActionMethodItem コマンドを作成します。各コマンドはコントロールの 2 つのプロパティを設定しますが、デザイン ホストの元に戻す機能を使用してロールバックが可能です。
Imports Microsoft.VisualBasic Imports System.Web Imports System.Web.UI Imports System.Drawing Imports System.Collections Imports System.Web.UI.WebControls Imports System.Web.UI.Design Imports System.ComponentModel Imports System.ComponentModel.Design Namespace ASPNet.Samples ' Create a custom control class with a Label and TextBox <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name:="FullTrust")> _ <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _ <Designer("ASPNet.Samples.SampleControlDesigner")> _ Public Class SampleControl Inherits CompositeControl Dim defaultWidth As Integer = 150 Public Sub New() End Sub ' Create a set of Public properties <Bindable(True), DefaultValue(""), _ PersistenceMode(PersistenceMode.Attribute)> _ Public Property LabelText() As String Get EnsureChildControls() Return MyLabel.Text End Get Set(ByVal value As String) EnsureChildControls() MyLabel.Text = value End Set End Property <Bindable(True), DefaultValue(""), _ PersistenceMode(PersistenceMode.Attribute)> _ Public Property BoxText() As String Get EnsureChildControls() Return MyTextBox.Text End Get Set(ByVal value As String) EnsureChildControls() MyTextBox.Text = value End Set End Property <Bindable(True), Category("Appearance"), _ PersistenceMode(PersistenceMode.Attribute)> _ Public Property BoxWidth() As Unit Get EnsureChildControls() Return MyTextBox.Width End Get Set(ByVal value As Unit) EnsureChildControls() MyTextBox.Width = value End Set End Property <Bindable(True), Category("Appearance"), _ PersistenceMode(PersistenceMode.Attribute)> _ Public Overrides Property BackColor() As Color Get EnsureChildControls() Return MyTextBox.BackColor() End Get Set(ByVal value As Color) EnsureChildControls() MyTextBox.BackColor = value End Set End Property ' Create private properties Private ReadOnly Property MyTextBox() As TextBox Get EnsureChildControls() Return CType(FindControl("MyTextBox"), TextBox) End Get End Property Private ReadOnly Property MyLabel() As Label Get EnsureChildControls() Return CType(FindControl("MyLabel"), Label) End Get End Property ' Create a Label and a TextBox Protected Overrides Sub CreateChildControls() Controls.Clear() MyBase.CreateChildControls() ' Create a Label control Dim localLabel As New Label() localLabel.ID = "MyLabel" localLabel.Text = localLabel.ID + ": " localLabel.EnableViewState = False Controls.Add(localLabel) ' Create a TextBox control Dim localTextBox As New TextBox() localTextBox.ID = "MyTextBox" localTextBox.Width = defaultWidth localTextBox.EnableViewState = False Controls.Add(localTextBox) End Sub End Class '----------------------------------------------- ' Create a designer class for the SampleControl <System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags:=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _ Public Class SampleControlDesigner Inherits ControlDesigner Private sampControl As SampleControl ' Constructor Public Sub New() MyBase.New() End Sub ' Do not allow resizing; force use of properties to set width Public Overrides ReadOnly Property AllowResize() As Boolean Get Return False End Get End Property ' Create a custom ActionLists collection Public Overrides ReadOnly Property ActionLists() As DesignerActionListCollection Get ' Create the collection Dim lists As New DesignerActionListCollection() ' Get the base items, if any lists.AddRange(MyBase.ActionLists) ' Add my own list of actions lists.Add(New CustomControlActionList(Me)) Return lists End Get End Property ' Create an embedded DesignerActionList class Private Class CustomControlActionList Inherits DesignerActionList ' Create private fields Private _parent As SampleControlDesigner Private _items As DesignerActionItemCollection ' Constructor Public Sub New(ByVal parent As SampleControlDesigner) MyBase.New(parent.Component) _parent = parent End Sub ' Create a set of transacted callback methods ' Callback for a wide format Public Sub FormatWide() Dim ctrl As SampleControl = CType(_parent.Component, SampleControl) ' Create the callback Dim toCall As New TransactedChangeCallback(AddressOf DoFormat) ' Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatWide", "Use a wide format") End Sub ' Callback for the medium format Public Sub FormatMedium() Dim ctrl As SampleControl = CType(_parent.Component, SampleControl) ' Create the callback Dim toCall As New TransactedChangeCallback(AddressOf DoFormat) ' Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatMedium", "Use a medium format") End Sub ' Callback for the narrow format Public Sub FormatNarrow() Dim ctrl As SampleControl = CType(_parent.Component, SampleControl) ' Create the callback Dim toCall As New TransactedChangeCallback(AddressOf DoFormat) ' Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatNarrow", "Use a narrow format") End Sub ' Get the sorted list of Action items Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection If IsNothing(_items) Then ' Create the collection _items = New DesignerActionItemCollection() ' Add a header to the list _items.Add(New DesignerActionHeaderItem("Select a Style:")) ' Add three commands _items.Add(New DesignerActionMethodItem(Me, "FormatWide", "Format Wide", True)) _items.Add(New DesignerActionMethodItem(Me, "FormatMedium", "Format Medium", True)) _items.Add(New DesignerActionMethodItem(Me, "FormatNarrow", "Format Narrow", True)) End If Return _items End Function ' Function for the callback to call Public Function DoFormat(ByVal arg As Object) As Boolean ' Get a reference to the designer's associated component Dim ctl As SampleControl = CType(_parent.ViewControl(), SampleControl) ' Get the format name from the arg Dim fmt As String = CType(arg, String) ' Create property descriptors Dim widthProp As PropertyDescriptor = TypeDescriptor.GetProperties(ctl)("BoxWidth") Dim backColorProp As PropertyDescriptor = TypeDescriptor.GetProperties(ctl)("BackColor") ' For the selected format, set two properties Select Case fmt Case "FormatWide" widthProp.SetValue(ctl, Unit.Pixel(250)) backColorProp.SetValue(ctl, Color.LightBlue) Case "FormatNarrow" widthProp.SetValue(ctl, Unit.Pixel(100)) backColorProp.SetValue(ctl, Color.LightCoral) Case "FormatMedium" widthProp.SetValue(ctl, Unit.Pixel(150)) backColorProp.SetValue(ctl, Color.White) End Select ' Return an indication of success Return True End Function End Class End Class End Namespace
using System; using System.Web; using System.Web.UI; using System.Drawing; using System.Collections; using System.Web.UI.WebControls; using System.Web.UI.Design; using System.ComponentModel; using System.ComponentModel.Design; namespace ASPNet.Samples { // Create a custom control class with a Label and TextBox [System.Security.Permissions.PermissionSetAttribute( System.Security.Permissions.SecurityAction.InheritanceDemand, Name = "FullTrust")] [System.Security.Permissions.PermissionSetAttribute( System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] [DesignerAttribute(typeof(SampleControlDesigner))] public class SampleControl : CompositeControl { int defaultWidth = 150; public SampleControl() { } // Create a set of public properties [Browsable(true), Bindable(true), DefaultValue("") , PersistenceMode(PersistenceMode.Attribute)] public string LabelText { get { EnsureChildControls(); return MyLabel.Text; } set { EnsureChildControls(); MyLabel.Text = value; } } [Browsable(true), Bindable(true), DefaultValue("") , PersistenceMode(PersistenceMode.Attribute)] public string BoxText { get { EnsureChildControls(); return MyTextBox.Text; } set { EnsureChildControls(); MyTextBox.Text = value; } } [Browsable(true), Bindable(true), Category("Appearance") , PersistenceMode(PersistenceMode.Attribute)] public Unit BoxWidth { get { EnsureChildControls(); return MyTextBox.Width; } set { EnsureChildControls(); MyTextBox.Width = value; } } [Browsable(true), Bindable(true), Category("Appearance") , PersistenceMode(PersistenceMode.Attribute)] public override Color BackColor { get { EnsureChildControls(); return MyTextBox.BackColor; } set { EnsureChildControls(); MyTextBox.BackColor = value; } } // Create private properties private TextBox MyTextBox { get { EnsureChildControls(); return (TextBox)FindControl("MyTextBox"); } } private Label MyLabel { get { EnsureChildControls(); return (Label)FindControl("MyLabel"); } } // Create a label and a text box. protected override void CreateChildControls() { // Clear the controls Controls.Clear(); // Create a Label control Label localLabel = new Label(); localLabel.EnableViewState = false; localLabel.ID = "MyLabel"; localLabel.Text = localLabel.ID + ": "; Controls.Add(localLabel); // Create a TextBox control TextBox localTextBox = new TextBox(); localTextBox.ID = "MyTextBox"; localTextBox.Width = defaultWidth; Controls.Add(localTextBox); } } // Create a designer class for the SampleControl [System.Security.Permissions.SecurityPermission( System.Security.Permissions.SecurityAction.Demand, Flags = System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)] public class SampleControlDesigner : ControlDesigner { // Constructor public SampleControlDesigner() : base() { } // Do not allow resizing; force use of properties to set width public override bool AllowResize { get { return false; } } // Create a custom ActionLists collection public override DesignerActionListCollection ActionLists { get { // Create the collection DesignerActionListCollection actionLists = new DesignerActionListCollection(); // Get the base items, if any actionLists.AddRange(base.ActionLists); // Add a custom list of actions actionLists.Add(new CustomControlActionList(this)); return actionLists; } } // Create an embedded DesignerActionList class private class CustomControlActionList : DesignerActionList { // Create private fields private SampleControlDesigner _parent; private DesignerActionItemCollection items; // Constructor public CustomControlActionList(SampleControlDesigner parent) : base(parent.Component) { _parent = parent; } // Create a set of transacted callback methods // Callback for the wide format public void FormatWide() { SampleControl ctrl = (SampleControl)_parent.Component; // Create the callback TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat); // Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatWide", "Use a wide format"); } // Callback for the medium format public void FormatMedium() { SampleControl ctrl = (SampleControl)_parent.Component; // Create the callback TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat); // Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatMedium", "Use a medium format"); } // Callback for the narrow format public void FormatNarrow() { SampleControl ctrl = (SampleControl)_parent.Component; // Create the callback TransactedChangeCallback toCall = new TransactedChangeCallback(DoFormat); // Create the transacted change in the control ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatNarrow", "Use a narrow format"); } // Get the sorted list of Action items public override DesignerActionItemCollection GetSortedActionItems() { if (items == null) { // Create the collection items = new DesignerActionItemCollection(); // Add a header to the list items.Add(new DesignerActionHeaderItem("Select a Style:")); // Add three commands items.Add(new DesignerActionMethodItem(this, "FormatWide", "Format Wide", true)); items.Add(new DesignerActionMethodItem(this, "FormatMedium", "Format Medium", true)); items.Add(new DesignerActionMethodItem(this, "FormatNarrow", "Format Narrow", true)); } return items; } // Function for the callbacks to call public bool DoFormat(object arg) { // Get a reference to the designer's associated component SampleControl ctl = (SampleControl)_parent.Component; // Get the format name from the arg string fmt = (string)arg; // Create property descriptors PropertyDescriptor widthProp = TypeDescriptor.GetProperties(ctl)["BoxWidth"]; PropertyDescriptor backColorProp = TypeDescriptor.GetProperties(ctl)["BackColor"]; // For the selected format, set two properties switch (fmt) { case "FormatWide": widthProp.SetValue(ctl, Unit.Pixel(250)); backColorProp.SetValue(ctl, Color.LightBlue); break; case "FormatNarrow": widthProp.SetValue(ctl, Unit.Pixel(100)); backColorProp.SetValue(ctl, Color.LightCoral); break; case "FormatMedium": widthProp.SetValue(ctl, Unit.Pixel(150)); backColorProp.SetValue(ctl, Color.White); break; } _parent.UpdateDesignTimeHtml(); // Return an indication of success return true; } } } }


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からControlDesigner.ActionLists プロパティを検索する場合は、下記のリンクをクリックしてください。

- ControlDesigner.ActionLists プロパティのページへのリンク