Как создать свой компонент Windows Forms - C#
Формулировка задачи:
Доброго времени суток. Подскажите новичку, что делаю неправильно, а то застопорился уже 2 дня на одном месте. Буду писать подробно что делаю, чтобы Вы подсказали где ошибка. (VisualStudio 2012 Professional)
1. Создаю проект
3. Запускаю построение решения. Проект->Построить решение. Успех
Библиотека элементов управления Windows Forms
2. Изменяю наследование класса, допустим, от компонента Label. Переопределяю метод рисования для градиентного заполнения и получаю такой код:namespace Test
{
public partial class UserControl1: Label
{
public UserControl1()
{
InitializeComponent();
}
private Color startColor = Color.Black,
endColor = Color.White;
public Color StartColor
{
get { return startColor; }
set { startColor = value; }
}
public Color EndColor
{
get { return endColor; }
set { endColor = value; }
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Color end = Color.FromArgb(100, endColor);
Color start = Color.FromArgb(100, startColor);
LinearGradientBrush b = new LinearGradientBrush(ClientRectangle, end, start, 0.0);
e.Graphics.FillRectangle(b, ClientRectangle);
b.Dispose();
}
}
}========== Перестроение всех: успешно: 1, с ошибками: 0, пропущено: 0 ==========
4. Добавляю к решению Test новый проект. ПМК->Добавить->Новое приложение Windows Forms. Теперь у меня в решении 2 проекта - Test и Form1. 5. На форму Form1 пытаюсь добавить созданный мной компонент. Изначально в списке его нет, хотя в учебнике, по которому я читаю, компонент из текущего решения должен появиться автоматом. ОК, пытаюсь добавить вручную. ПКМ->Выбрать компоненты->.NET->Выбираю мою ...bin/Debug/Test.dll, добавляю. Вылазит сообщение как на приклеплённой картинке: В чем проблема. Подскажите кто сталкивался, или на каком этапе что делаю неправильно. Спасибо.Решение задачи: «Как создать свой компонент Windows Forms»
textual
Листинг программы
/// <summary>
/// Обязательный метод для поддержки конструктора - не изменяйте
/// содержимое данного метода при помощи редактора кода.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
// this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}