[英]How do I add a designer verb to a control without disabling existing designer functionality?
我創建了一個從TextBox
派生的自定義文本框控件。
要添加設計器動詞,我創建了一個附加到我的控件的設計器,但這樣做會禁用System.Windows.Forms.Design.TextBoxDesigner
中的所有現有設計器功能,該設計器附加到TextBox
ZA2F2ED4F8EBC06ABB4C21A2DDC
TextBoxDesigner
class 設置為internal
,因此我也無法從中派生我的設計師。
我究竟做錯了什么?
是否有其他方法可以在不破壞現有功能的情況下將設計時功能添加到派生控件?
如果您找不到其他選擇,您可以在沒有真正繼承的情況下繼承。
class ExtendedTextboxDesigner : ControlDesigner
{
public ExtendedTextboxDesigner()
{
var atts = (DesignerAttribute[])typeof(TextBox).GetCustomAttributes(
typeof(DesignerAttribute),
false);
var designer = (ControlDesigner)Activator.CreateInstance(
Type.GetType(atts[0].DesignerTypeName));
}
private ControlDesigner Base { get; set; }
public override bool CanBeParentedTo(IDesigner parentDesigner)
{
return Base.CanBeParentedTo(parentDesigner);
}
// ...
}
這很煩人,您需要重寫ControlDesigner
的每個方法和屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.