(0) exportieren Drucken
Alle erweitern
0 von 2 fanden dies hilfreich - Dieses Thema bewerten.

IDesignerHost-Schnittstelle

Stellt eine Schnittstelle zum Verwalten von Designertransaktionen und Komponenten bereit.

Namespace: System.ComponentModel.Design
Assembly: System (in system.dll)

[ComVisibleAttribute(true)] 
public interface IDesignerHost : IServiceContainer, IServiceProvider
/** @attribute ComVisibleAttribute(true) */ 
public interface IDesignerHost extends IServiceContainer, IServiceProvider
ComVisibleAttribute(true) 
public interface IDesignerHost extends IServiceContainer, IServiceProvider

IDesignerHost ist eine Schnittstelle, die zusammen mit der Formular-Designer-Architektur von .NET Framework Unterstützung für die Verwaltung von Designertransaktionen und Komponenten bereitstellt.

.NET Framework stellt keine Implementierung dieser Schnittstelle bereit. Die Schnittstelle wird durch Entwicklungstools implementiert, die Designer unterstützen.

Hinweise für Aufrufer Sie erhalten in einer Entwicklungsumgebung eine IDesignerHost-Implementierung, indem Sie GetService aufrufen, während sich die Komponente aktiv im Entwurfsmodus befindet, und den Typ des anzufordernden IDesignerHost an die IDesignerHost-Dienstschnittstelle übergeben. IDesignerHost stellt folgende mit dem Designerzustand zusammenhängende Member bereit:

  • Die Loading-Eigenschaft gibt an, ob ein Designer oder ein Dokument geladen wird.

  • Das Activated-Ereignis tritt ein, wenn ein Designer vor der Anzeige aktiviert wird.

  • Das Deactivated-Ereignis tritt ein, wenn ein Designer deaktiviert wird.

  • Das LoadComplete-Ereignis tritt ein, nachdem ein Dokument geladen wurde.

  • Die Activate-Methode aktiviert den Designer.

IDesignerHost stellt folgende mit der Verwaltung von Komponenten zusammenhängende Member bereit:
  • Die Container-Eigenschaft gibt den Container für den Designerhost an.

  • Die RootComponent-Eigenschaft gibt die Basisklasse für die Stammkomponente an.

  • Die RootComponentClassName-Eigenschaft gibt den Namen der Klasse der Stammkomponente an.

  • Die CreateComponent-Methode erstellt die Komponente des angegebenen Typs.

  • Die DestroyComponent-Methode zerstört die angegebene Komponente.

  • Die GetDesigner-Methode ruft den einer angegebenen Komponente zugeordneten Designer ab.

  • Die GetType-Methode ruft eine Instanz des Typs mit dem angegebenen Namen ab.

IDesignerHost stellt folgende mit der Verwaltung von Transaktionen zusammenhängende Member bereit:

Im folgenden Codebeispiel wird veranschaulicht, wie Sie die IDesignerHost-Dienstschnittstelle von einem Designer oder einer Komponente mit Site erhalten.

// Requests an IDesignerHost service from the design time environment using Component.Site.GetService()
IDesignerHost dh = (IDesignerHost) this.Component.Site.GetService(typeof(IDesignerHost));            

// Requests an IDesignerHost service from the design time 
// environment using Component.Site.GetService()
IDesignerHost dh = (IDesignerHost)this.get_Component().get_Site().
    GetService(IDesignerHost.class.ToType());

Im folgenden Codebeispiel wird veranschaulicht, wie mit der IDesignerHost-Schnittstelle Projektkomponenten aufgelistet werden.

using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Windows.Forms;

namespace IDesignerHostExample
{	
    // IDesignerHostExampleComponent is a component associated 
    // with the IDesignerHostExampleDesigner that demonstrates 
    // acquisition and use of the IDesignerHost service 
    // to list project components.
    [DesignerAttribute(typeof(IDesignerHostExampleDesigner))]
    public class IDesignerHostExampleComponent : System.ComponentModel.Component
    {
        public IDesignerHostExampleComponent()
        {}

        protected override void Dispose( bool disposing )
        {
            base.Dispose( disposing );
        }
    }

    // You can double-click the component of an IDesignerHostExampleDesigner 
    // to show a form containing a listbox that lists the name and type 
    // of each component or control in the current design-time project.
    [System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name = "FullTrust")] 
    public class IDesignerHostExampleDesigner : IDesigner
    {
        private System.ComponentModel.IComponent component;

        public IDesignerHostExampleDesigner()
        {}

        public void DoDefaultAction()
        {
            ListComponents();
        }

        public void Initialize(System.ComponentModel.IComponent component)
        {
            this.component = component;
            MessageBox.Show("Double-click the IDesignerHostExample component to view a list of project components.");
        }

        // Displays a list of components in the current design 
        // document when the default action of the designer is invoked.
        private void ListComponents()
        {			
            DesignerHostListForm listform = new DesignerHostListForm();
            // Obtain an IDesignerHost service from the design environment.
            IDesignerHost host = (IDesignerHost)this.component.Site.GetService(typeof(IDesignerHost));
            // Get the project components container (control containment depends on Controls collections)
            IContainer container = host.Container;
            // Add each component's type name and name to the list box.
            foreach(IComponent component in container.Components)
            {
                listform.listBox1.Items.Add(component.GetType().Name + " : " + component.Site.Name);
            }
            // Display the form.
            listform.ShowDialog();
        }

        public System.ComponentModel.IComponent Component
        {
            get
            {
                return this.component;
            }
        }

        public System.ComponentModel.Design.DesignerVerbCollection Verbs
        {
            get
            {
                DesignerVerbCollection dvc = new DesignerVerbCollection();
                dvc.Add( new DesignerVerb("List Components", new EventHandler(ListHandler)) );
                return dvc;
            }
        }

        private void ListHandler(object sender, EventArgs e)
        {
            ListComponents();
        }

        public void Dispose() {	}
    }

    // Provides a form containing a listbox that can display 
    // a list of project components.
    public class DesignerHostListForm : System.Windows.Forms.Form
    {
        public System.Windows.Forms.ListBox listBox1;
        private System.Windows.Forms.Button ok_button;
        
        public DesignerHostListForm()
        {
            this.Name = "DesignerHostListForm";
            this.Text = "List of design-time project components";
            this.SuspendLayout();
            this.listBox1 = new System.Windows.Forms.ListBox();						
            this.listBox1.Location = new System.Drawing.Point(8, 8);
            this.listBox1.Name = "listBox1";
            this.listBox1.Size = new System.Drawing.Size(385, 238);
            this.listBox1.TabIndex = 0;	
            this.listBox1.Anchor = (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
                | System.Windows.Forms.AnchorStyles.Left) 
                | System.Windows.Forms.AnchorStyles.Right);		
            this.ok_button = new System.Windows.Forms.Button();
            this.ok_button.DialogResult = System.Windows.Forms.DialogResult.OK;
            this.ok_button.Location = new System.Drawing.Point(232, 256);
            this.ok_button.Name = "ok_button";
            this.ok_button.TabIndex = 1;
            this.ok_button.Text = "OK";
            this.ok_button.Anchor = (System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right);
            this.ClientSize = new System.Drawing.Size(400, 285);
            this.Controls.AddRange(new System.Windows.Forms.Control[] { this.ok_button, this.listBox1 });
            this.ResumeLayout(false);	
        }

        protected override void Dispose( bool disposing )
        {			
            base.Dispose( disposing );
        }	
    }
}

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.