ControlDesigner.InvokeTransactedChange Yöntem

Tanım

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

Aşırı Yüklemeler

InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

InvokeTransactedChange(IServiceProvider, IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

C#
public static void InvokeTransactedChange(System.ComponentModel.IComponent component, System.Web.UI.Design.TransactedChangeCallback callback, object context, string description);

Parametreler

component
IComponent

Denetim tasarımcısıyla ilişkili denetim.

callback
TransactedChangeCallback

TransactedChangeCallback denetim tasarımcısında işlemin bir parçası olarak çağrılacak bir işlevi temsil eden nesne.

context
Object

Geri çağırma bağımsız değişkenini içeren bir nesne.

description
String

Kullanıcıya işlemi iptal etme fırsatı vermek için tasarım konağı tarafından kullanılan işlemin tamamlanmasına izin verme etkisinin açıklaması.

Özel durumlar

component, null değeridir.

-veya-

callback, null değeridir.

Örnekler

Aşağıdaki kod örneği, etiket metnini ve denetimin LabelText, Widthve BackColor özelliklerini ayarlama özellikleriyle birlikte bir ve denetimiyle basit bir TextBox bileşik denetimin TextBox nasıl oluşturulacağını gösterir. İlişkili bir denetim tasarımcısı sınıfı, her biri denetimde iki özellik ayarlayan üç DesignerActionMethodItem komut oluşturur. yöntemini kullanarak InvokeTransactedChange , tamamlanan her işlemi bir birim olarak geri almak için Visual Studio 2005 gibi tasarım konağı geri alma işlevini kullanabilirsiniz.

C#
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;
            }
        }
    }
}

Açıklamalar

yönteminin InvokeTransactedChange uygulanması, özelliği tarafından Site belirlenen tasarım konağınacomponent, ilişkili denetimde bir değişiklik olduğunu bildirir ve değişiklik tasarım konağı tarafından iptal edilmediği takdirde belirtilen contextöğesini kullanarak çağırır callback ve ardından tasarım konağına değişikliğin tamamlandığını bildirir.

Tasarım konağı veya ilişkili denetim bir CheckoutException özel durumun statik Canceled özel durum alanını oluşturuyorsa, işlem çağrılmadan callbackiptal edilir.

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8.1 ve diğer sürümler
Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

C#
public static void InvokeTransactedChange(System.ComponentModel.IComponent component, System.Web.UI.Design.TransactedChangeCallback callback, object context, string description, System.ComponentModel.MemberDescriptor member);

Parametreler

component
IComponent

Denetim tasarımcısıyla ilişkili denetim.

callback
TransactedChangeCallback

TransactedChangeCallback denetim tasarımcısında işlemin bir parçası olarak çağrılacak bir işlevi temsil eden nesne.

context
Object

Geri çağırma bağımsız değişkenini içeren bir nesne.

description
String

Kullanıcıya işlemi iptal etme fırsatı vermek için tasarım konağı tarafından kullanılan işlemin tamamlanmasına izin verme etkisinin açıklaması.

member
MemberDescriptor

MemberDescriptor İşlemin bir parçası olarak çağrılan ilişkili denetimin üyesini tanımlayan bir nesne (genellikle EventDescriptor bir veya bir PropertyDescriptor nesne).

Özel durumlar

component, null değeridir.

-veya-

callback, null değeridir.

Örnekler

Kod örneği için bkz InvokeTransactedChange(IComponent, TransactedChangeCallback, Object, String). .

Açıklamalar

yönteminin InvokeTransactedChange uygulanması, özelliği componenttarafından Site belirlenen tasarım konağına, ilişkili denetimin belirtilen member (özellik veya yöntem) içinde bir değişiklik gerçekleştiğini bildirir ve değişiklik tasarım konağı tarafından iptal edilmediyse, belirtilen bağımsız değişken olarak belirtilen callbackcontext öğesini kullanarak belirtileni çağırır ve ardından tasarım konağına değişikliğin tamamlandığını bildirir.

Tasarım konağı veya ilişkili denetim bir özel durumun statik Canceled özel CheckoutException durum alanını oluşturuyorsa, işlem çağrılmadan callbackiptal edilir.

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8.1 ve diğer sürümler
Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

InvokeTransactedChange(IServiceProvider, IComponent, TransactedChangeCallback, Object, String, MemberDescriptor)

Tasarım konağı geri alma işlevselliğiyle bir birim olarak geri alınabilecek belirtilen parametreleri kullanarak bir dizi değişikliği bir işleme sarmalar.

C#
public static void InvokeTransactedChange(IServiceProvider serviceProvider, System.ComponentModel.IComponent component, System.Web.UI.Design.TransactedChangeCallback callback, object context, string description, System.ComponentModel.MemberDescriptor member);

Parametreler

serviceProvider
IServiceProvider

IServiceProvider İlişkili denetim için denetim tasarımcısı hizmetleri sağlayan tasarım ana bilgisayarını temsil eden nesne.

component
IComponent

Denetim tasarımcısıyla ilişkili denetim.

callback
TransactedChangeCallback

TransactedChangeCallback denetim tasarımcısında işlemin bir parçası olarak çağrılacak bir işlevi temsil eden nesne.

context
Object

Geri çağırma bağımsız değişkenini içeren bir nesne.

description
String

Kullanıcıya işlemi iptal etme fırsatı vermek için tasarım konağı tarafından kullanılan işlemin tamamlanmasına izin verme etkisinin açıklaması.

member
MemberDescriptor

MemberDescriptor İşlemin bir EventDescriptor parçası olarak çağrılan ilişkili denetimin üyesini açıklayan bir nesne (genellikle bir veya bir PropertyDescriptor nesne).

Özel durumlar

component, null değeridir.

-veya-

callback, null değeridir.

-veya-

serviceProvider, null değeridir.

Örnekler

Kod örneği için bkz InvokeTransactedChange. .

Açıklamalar

yönteminin InvokeTransactedChange uygulanması, ile serviceProvidertemsil edilen tasarım konağına, ilişkili denetimin belirtilen member (özellik veya yöntem) içinde bir değişiklik gerçekleştiğini bildirir ve değişiklik tasarım konağı tarafından iptal edilmediyse, belirtilen bağımsız değişkeni kullanarak belirtileni callbackcontext çağırır ve ardından tasarım konağına değişikliğin tamamlandığını bildirir.

Tasarım konağı veya ilişkili denetim bir CheckoutException özel durumun statik Canceled özel durum alanını oluşturuyorsa, işlem çağrılmadan callbackiptal edilir.

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8.1 ve diğer sürümler
Ürün Sürümler
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1