您能告诉我如何在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'的构造函数。
答案 0 :(得分:1)
右键单击您的项目,选择添加新项目。转到C#部分,然后选择用户控制。
这将创建一个窗口控件,当您使用窗体设计器时,它将显示在工具箱的顶部。只需将其拖放到您的表单中就像任何其他控件一样。
如果您希望从Combo Box派生它,那么只需编辑创建的类并将其基类从UserControl更改为组合框。您可能还需要更改构造函数顶部调用三个基类构造函数,而不是为自己执行InitialiseComponent。
如果要在许多应用程序中使用此控件,则可以将代码放入类库项目中,该项目将生成其他项目可以引用的.dll程序集以获取对控件的访问权。
答案 1 :(得分:0)
创建Windows应用程序,然后通过右键单击解决方案资源管理器中的项目进入“添加新项目”菜单,您可以看到组件AFAIR。
答案 2 :(得分:0)
假设你在谈论Winforms ......
从现有控件中获取可能不是您想要做的事情。特别是如果您想要更改其默认行为或替换其现有属性。迟早你将面临严重的限制。相信我,我去过那里。
如果您希望轻松地为ComboBox
重复某种模式,建议您查看IExtenderProvider
界面。您可以在Component
派生类上实现它,您可以在设计图面上拖动它。在此组件中,您可以声明将作为额外属性附加到任何组合框的属性(或其他任何内容,这完全取决于您)。
由于组件将知道附加到它的任何内容,因此它将能够通过任何连接的控件/组件声明事件处理程序。例如,如果您希望组合框中已存在项目,则可以处理Load
事件并在其中添加项目。
要详细了解IExtenderProvider
,请转到here。