0
我想知道是否有更好的方法將Interface實現爲自定義控件。 我在自定義按鈕控件中實現了一個接口,並且引用了我需要將按鈕轉換爲接口類型以實現它的已實現的屬性。將自定義屬性添加到常見控制問題
有沒有辦法直接引用它?我是否需要在按鈕類中創建修飾器屬性,以將其暴露給外部世界?
我想知道是否有更好的方法將Interface實現爲自定義控件。 我在自定義按鈕控件中實現了一個接口,並且引用了我需要將按鈕轉換爲接口類型以實現它的已實現的屬性。將自定義屬性添加到常見控制問題
有沒有辦法直接引用它?我是否需要在按鈕類中創建修飾器屬性,以將其暴露給外部世界?
看來您期望接口存儲值集。接口只是類必須實現其所有成員的契約。即使您註釋掉髮生錯誤的行,您也會收到編譯時錯誤,您的MyButton
類不會實現MyInterface
的所有成員。
你需要在你的MyButton
類上實現string MyProp
。
public class MyButton : System.Windows.Forms.Button, MyInterface
{
public string MyProperty
{
get { return null; }
set { /* ??? */ }
}
public string MyProp { get; set; } // <------ Implement string MyProp
}
不過,如果你實際上要做的是共享多個類之間的單一屬性,你可以考慮使用一個基類來代替:
public class MyControlBase
: System.Windows.Forms.Button
{
public string MyProp { get; set; }
}
public class MyButton : MyControlBase
{
public string MyProperty { get; set; }
}
-
void Example()
{
var btn = new MyButton();
var property = btn.MyProperty;
var prop = btn.MyProp;
}
在多個類之間共享一個屬性,是我想要做的。但對於多種類型的控件,組合框,文本框,按鈕,組框。那就是爲什麼我要使用Interface。但是我面對的是實施的財產不能直接訪問的事實。 (您的錯誤實施是正確的,這是我的錯誤) – Hugo 2012-02-08 20:18:09