這裏是情況。我做了一個自定義按鈕控制:c#winform:覆蓋自定義控件設計器中的默認屬性
public partial class EButton : Control, IButtonControl
此控件包含一個按鈕。我使用的getter/setter方法在設計師編輯自己的屬性,如:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
[Browsable(true)]
public UIButton Button
{
get
{
return EBtn;
}
set
{
EBtn = value;
}
}
現在,我可以訪問所有的設計師我的按鈕的屬性。
我的問題是,無論我定義什麼,這總是被我的控件中的默認屬性覆蓋。
例如: 在我的控制中,按鈕的BackColor設置爲白色。 在特定的表單中,我想將此按鈕設置爲紅色,因此我在表單的設計器中將BackColor屬性設置爲紅色。 當我重新加載設計器時,該值已返回到白色。
我不想爲按鈕的每個屬性製作setter。這是一個特定的控制(http://www.janusys.com/controls/),它有很多有用的屬性,我想適應每個特定的情況。
有誰知道解決方案嗎?
看看Plutonix的答案在這裏:http://stackoverflow.com/questions/32070817/abbreviate-serialization-in-designer你最有可能實現爲您的新控件提供一個類型轉換器,告訴設計師如何使用它。 – Jens
http://stackoverflow.com/questions/30575572/when-compiling-some-property-values-are-reset-set-in-the-designer – kevintjuh93
*當我重新加載設計器時,該值已返回到白*聽起來像序列化問題。嘗試檢查設計器文件生成的文件,看看是否實際保存了此更改。 – Sinatr