在自訂控制項中啟用設計支援
建立自訂控制項時,最好保持與其基本控制項相同的功能。其中一項功能是在設計時透過拖曳標題來調整列大小的能力。但是,預設情況下,自訂控制項不會繼承此行為。
Windows 窗體設計器對特定控制項使用專用設計器類別。例如,ListView 的設計器是內部 System.Windows.Forms.Design.ListViewDesigner 類別。將 ListView 放置在使用者控制項上時,將使用預設的 ControlDesigner,它不提供拖曳列標題的功能。
要解決此問題,您可以為使用者控制項建立自訂設計器。透過透過公共屬性公開基礎 ListView 並套用 [DesignerSerializationVisibility] 屬性,您可以在設計時存取和修改 ListView 的屬性。此外,透過將 [Designer] 屬性套用至使用者控制項類,您可以將預設設計器替換為自訂設計器。
考慮以下範例:
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"); } } }
使用此自訂設計器,使用者控制項內的ListView可以像獨立的ListView一樣被點選和設計。
以上是如何在自訂 Windows 窗體控制項中啟用設計時列大小調整?的詳細內容。更多資訊請關注PHP中文網其他相關文章!