在Windows 窗體應用程式中,某些控制項具有專門的設計器,可在設計模式下增強其自訂功能。但是,當在自訂 UserControl 中嵌入此類控制項時,這些增強的設計功能可能無法使用。
ListView 控制項就是一個例子。在標準表單中,使用者可以拖放列標題以在設計模式下調整其大小。但是,當嵌入到 UserControl 中時,此功能不存在。
要克服此限制,您可以利用 Windows 窗體設計器體系結構。透過建立自訂設計器類,您可以將設計支援從標準 ControlDesigner 重定向到底層控制項的專門設計器。
以下是如何為包含 ListView 的自訂 UserControl 實作此功能:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public ListView Employees { get { return listView1; } }
[Designer(typeof(MyDesigner))] public partial class UserControl1 : UserControl { // ... }
public class MyDesigner : ControlDesigner { public override void Initialize(IComponent comp) { base.Initialize(comp); // Enable design mode for the "Employees" ListView var uc = (UserControl1)comp; EnableDesignMode(uc.Employees, "Employees"); } }
經過這些修改後,嵌入在UserControl 中的ListView將在設計中恢復其拖放列調整大小功能
此技術可讓您利用自訂設計器的功能,使您能夠擴展控制項的設計時功能,並為使用UserControl 的開發人員提供最佳的使用者體驗。
以上是如何擴充自訂 Windows 窗體使用者控制項中嵌入式控制項的設計時支援?的詳細內容。更多資訊請關注PHP中文網其他相關文章!