Drag und Drop Steuerelemente auf einem benutzerdefinierten Steuerelement ausgeblendet werden

Erstellte ich eine benutzerdefinierte UserControl, wo ich Unterstützung Drag-und-Drop von Steuerelementen zur Entwurfszeit. Meine Kontrollen fallen in mein user control richtig, aber Sie sind versteckt, einmal fiel auf das Benutzersteuerelement. Erhalten Sie mehr Kontrolle, um sichtbar zu werden, ich habe, um es auszuwählen, und klicken Sie auf die design-time-IDE-Taste "nach Vorne" zu sehen, die Steuerung Hinzugefügt. Wenn ich die Projektmappe neu erstellen, die Steuerelemente wieder ausgeblendet.

Ich reproduzierte das Problem mit den folgenden code. In der IDE habe ich eine einfache Benutzer-Steuerelement "MyControl", zu dem ich fügte hinzu, eine einzige Panel-Steuerelement angedockt zu "Füllen". Dieses user control "MyControl" sollte dann gelöscht werden, auf einem Windows-Systemsteuerung. Dann, drag-and-drop ein anderes Steuerelement, wie einem Label oder Buton-Steuerelement auf das Benutzersteuerelement, und es wird ausgeblendet.

Unten ist der code für das user control. Wie kann ich die Steuerelemente, die fallen in der Benutzer-Steuerelement zur Entwurfszeit gebracht werden, automatisch in den Vordergrund?

MyControl.Designer.cs:

namespace Test
{
    partial class MyControl
    {
        private System.ComponentModel.IContainer components = null;

        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void InitializeComponent()
        {
            this.panel1 = new System.Windows.Forms.Panel();
            this.SuspendLayout();
            //
            //panel1
            //
            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.panel1.Location = new System.Drawing.Point(0, 0);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(150, 150);
            this.panel1.TabIndex = 0;
            //
            //MyControl
            //
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.Controls.Add(this.panel1);
            this.Name = "MyControl";
            this.ResumeLayout(false);

        }

        private System.Windows.Forms.Panel panel1;
    }
}

MyControl.cs:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.Design;

namespace Axiom.Controls
{
    [Designer(typeof(ParentControlDesigner))]
    public partial class MyControl : UserControl
    {
        public MyControl()
        {
            InitializeComponent();
        }

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Panel ContentPanel
        {
            get
            {
                return this.panel1;
            }
        }
    }

    internal class MyControlDesigner : ControlDesigner
    {
        public override void Initialize(IComponent component)
        {

            base.Initialize(component);

            MyControl control = component as MyControl;

            EnableDesignMode(control.ContentPanel, "ContentPanel");
        }
    }
}

Update:

Fand ich eine andere Frage/Antwort zu diesem problem von Drag & Drop Steuerelemente zur Entwurfszeit auf ein container-Steuerelement in einem benutzerdefinierten Benutzer-Steuerung:

  1. Frage
  2. Referenzierte Artikel

Folgte ich dem obigen Artikel und erfolgreich gezogen und toolbox-Steuerelemente auf einem container-Steuerelement in meine benutzerdefinierte Steuerelement zur Entwurfszeit.

InformationsquelleAutor Elan | 2011-04-18
Schreibe einen Kommentar