2012-01-14 69 views
0

您可以告訴我如何在Visual Studio 2010中創建.net 4.0的新可視組件, 我有一本關於俄語組件創建的書(Pavel Agurov -Razrabotka Komponentov v微軟的Visual Studio 2005/2008中),但方法這本書涵蓋了VS 2005和2008和方法給出了2010年VS如何在Visual Studio 2010中創建新組件

編輯一些錯誤: 有我的代碼

public partial class exComboBox : ComboBox 
{ 
    /*public exComboBox() 
    { 
     InitializeComponent(); 
    }*/ 
    private System.Collections.Specialized.StringCollection _itemValues = new System.Collections.Specialized.StringCollection(); 

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
    [Editor("System.Windows.Forms.Design.StringCollectionEditor,System.Editor","System.Drawing.Design.UITypeEditor,System.Drawing")] 
    public System.Collections.Specialized.StringCollection ItemValues 
    { 
     get 
     { 
      return _itemValues; 
     } 
     set 
     { 
      _itemValues = value; 
     } 
    } 
    public object SelectedItemValue 
    { 
     get 
     { 
      return _itemValues[SelectedIndex]; 
     } 
    } 
} 

當我嘗試將此組件添加到新窗體併爲ItemValu添加值es它說
未找到類型'System.String'的構造函數。

+0

Visual Studio 2010不會*改變那麼多*。告訴我們錯誤是什麼(詳細),我們應該能夠提供幫助。 – 2012-01-14 08:22:30

+1

您是否嘗試過Google並在msdn中查看? – Tigran 2012-01-14 08:23:47

+0

是的,但我沒有找到滿意的結果,然後我決定問stackoverflow – namco 2012-01-14 08:26:14

回答

0

創建一個Windows應用程序,然後再通過右鍵單擊項目在解決方案資源管理添加新項菜單,你可以看到有組件AFAIR。

0

右鍵單擊您的項目,選擇添加一個新項目。轉到C#部分並選擇用戶控制。

這將創建當您使用窗體設計器,將在工具箱的頂部出現一個窗口控制。只需將其拖放到任何其他控件的窗體中即可。

如果您希望從組合框獲得它,然後只需編輯創建的類,然後從一個用戶控件改變它的基類組合框。您可能還需要更改您的構造函數頂部調用三個基類構造函數,而不是爲其自身執行InitialiseComponent。

如果你想使用在許多應用中控制,那麼你可以把代碼放到一個類庫項目,這將使得其他項目可以參考訪問控制一個.dll組件。

+0

我做了同樣的事情,但它給出了同樣的錯誤,然後該怎麼做? – namco 2012-01-14 09:19:46

0

假設你在談論的WinForms ...

從現有控件中派生可能不是你想要做的事。特別是如果你想改變他們的默認行爲或者替換他們現有的屬性。遲早你會面臨嚴重的限制。相信我,我一直在那裏。

如果你想要一個簡單的方法來重複某種模式的ComboBox,我建議你看一看IExtenderProvider接口。您可以在Component派生的類上實現它,您可以在設計圖面上拖動它。在這個組件中,您可以聲明將作爲附加屬性附加到任何組合框的屬性(或其他任何組件,完全取決於您)。

由於該組件將知道無論是連接到它,它就能在任何連接控制/組件宣佈事件處理程序。例如,如果您希望組合框具有已存在的項目,則可以處理它的Load事件並在其中添加項目。

要了解更多有關IExtenderProvider,去here

相關問題