如何在Visual Studio 2010中创建新组件

时间:2012-01-14 08:20:09

标签: c# visual-studio-2010 user-controls

您能告诉我如何在Visual Studio 2010中为.net 4.0创建新的可视组件, 我有一本关于俄语语言中组件创建的书( Pavel Agurov -Razrabotka Komponentov v MS Visual Studio 2005/2008 ),但本书中的方法涵盖了VS 2005和2008.并且方法在VS中给出了一些错误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];
        }
    }
}

当我尝试将此组件添加到新表单并为ItemValues添加值时,它表示为 未找到类型'System.String'的构造函数。

3 个答案:

答案 0 :(得分:1)

右键单击您的项目,选择添加新项目。转到C#部分,然后选择用户控制。

这将创建一个窗口控件,当您使用窗体设计器时,它将显示在工具箱的顶部。只需将其拖放到您的表单中就像任何其他控件一样。

如果您希望从Combo Box派生它,那么只需编辑创建的类并将其基类从UserControl更改为组合框。您可能还需要更改构造函数顶部调用三个基类构造函数,而不是为自己执行InitialiseComponent。

如果要在许多应用程序中使用此控件,则可以将代码放入类库项目中,该项目将生成其他项目可以引用的.dll程序集以获取对控件的访问权。

答案 1 :(得分:0)

创建Windows应用程序,然后通过右键单击解决方案资源管理器中的项目进入“添加新项目”菜单,您可以看到组件AFAIR。

答案 2 :(得分:0)

假设你在谈论Winforms ......

从现有控件中获取可能不是您想要做的事情。特别是如果您想要更改其默认行为或替换其现有属性。迟早你将面临严重的限制。相信我,我去过那里。

如果您希望轻松地为ComboBox重复某种模式,建议您查看IExtenderProvider界面。您可以在Component派生类上实现它,您可以在设计图面上拖动它。在此组件中,您可以声明将作为额外属性附加到任何组合框的属性(或其他任何内容,这完全取决于您)。

由于组件将知道附加到它的任何内容,因此它将能够通过任何连接的控件/组件声明事件处理程序。例如,如果您希望组合框中已存在项目,则可以处理Load事件并在其中添加项目。

要详细了解IExtenderProvider,请转到here