Ich verwende Generics mit einem Listview-Steuerelement, dessen Anfangsklassendefinition sieht wie folgt aus:Generics Listview Custom Control
namespace BaseControlLibrary
{
public partial class CustomListView<T> : System.Windows.Forms.ListView
{
// Custom fields, properties, methods go here
public CustomListView(List<T> data)
{
_columnInfo = new Dictionary<int, string>();
_columnIndex = 0;
_lvwItemComparer = new ListViewItemComparer();
this.ListViewItemSorter = _lvwItemComparer;
InitializeColumnNames();
BindDataToListView(data);
this.Invalidate();
}
}
}
Hier ist meine Designer-Datei:
partial class CustomListView
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
//protected override void Dispose(bool disposing)
//{
// if (disposing && (components != null))
// {
// components.Dispose();
// }
// base.Dispose(disposing);
//}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
// this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
Was ich tun möchte, ist um eine Windows-Steuerelementbibliothek zu erstellen, und ich habe es erfolgreich getan, aber das Problem tritt auf, wenn ich die DLL der Toolbox nicht hinzufügen kann. Ich bin mir nicht ganz sicher, warum ich das nicht machen kann. Ich dachte, dass alle Windows Forms-Steuerelemente die IComponent-Schnittstelle implementieren, die zum Hinzufügen von Elementen zur Toolbox erforderlich ist. Liegt es daran, dass der Typparameter Teil der Klassendefinition ist?
Vielleicht das Fehlen eines öffentlichen parameterlosen Konstruktors? – Zyphrax