Heim >Backend-Entwicklung >C++ >Wie kann ich die Größenänderung von Spalten zur Entwurfszeit in benutzerdefinierten Windows Forms-Steuerelementen aktivieren?
Designunterstützung in benutzerdefinierten Steuerelementen aktivieren
Beim Erstellen benutzerdefinierter Steuerelemente ist es wünschenswert, die gleiche Funktionalität wie die Basissteuerelemente beizubehalten. Eine dieser Funktionen ist die Möglichkeit, die Größe von Spalten durch Ziehen von Kopfzeilen zur Entwurfszeit zu ändern. Benutzerdefinierte Steuerelemente erben dieses Verhalten jedoch standardmäßig nicht.
Der Windows Forms-Designer verwendet dedizierte Designerklassen für bestimmte Steuerelemente. Der Designer für eine ListView ist beispielsweise die interne Klasse System.Windows.Forms.Design.ListViewDesigner. Beim Platzieren einer ListView auf einem Benutzersteuerelement wird stattdessen der Standard-ControlDesigner verwendet, der nicht die Möglichkeit bietet, Spaltenüberschriften zu ziehen.
Um dies zu beheben, können Sie einen benutzerdefinierten Designer für das Benutzersteuerelement erstellen. Indem Sie die zugrunde liegende ListView über eine öffentliche Eigenschaft verfügbar machen und das Attribut [DesignerSerializationVisibility] anwenden, können Sie zur Entwurfszeit auf die Eigenschaften der ListView zugreifen und diese ändern. Darüber hinaus können Sie durch Anwenden des Attributs [Designer] auf die Benutzersteuerelementklasse den Standarddesigner durch Ihren benutzerdefinierten ersetzen.
Betrachten Sie das folgende Beispiel:
using System; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Windows.Forms.Design; // Note: add reference required: System.Design.dll namespace WindowsFormsApplication1 { [Designer(typeof(MyDesigner))] // Note: custom designer public partial class UserControl1 : UserControl { public UserControl1() { InitializeComponent(); } // Note: property added [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ListView Employees { get { return listView1; } } } // Note: custom designer class added class MyDesigner : ControlDesigner { public override void Initialize(IComponent comp) { base.Initialize(comp); var uc = (UserControl1)comp; EnableDesignMode(uc.Employees, "Employees"); } } }
Mit diesem benutzerdefinierten Designer , die ListView innerhalb des Benutzersteuerelements kann wie eine eigenständige ListView angeklickt und gestaltet werden.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größenänderung von Spalten zur Entwurfszeit in benutzerdefinierten Windows Forms-Steuerelementen aktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!