Я не хочу делать все это для вас, но вот основной план одного из способов достижения целей, которые вы наметили.Это не обязательно лучший способ, но он должен помочь вам начать работу и познакомит вас с рядом концепций WinForms.
Написание текста
Создание Form
и добавьте к нему элемент управления TextBox
.Убедитесь, что он скрыт по умолчанию.Переопределите метод OnMouseClick
вашего Form
и добавьте код, который проверяет, является ли TextBox
видимым, а если нет, показывает его и помещает фокусчтобы пользователь мог ввести свой текст.Если TextBox
уже виден, код должен его скрыть и создать вместо него новый UserControl
, показывающий текст (подробности этого см. Ниже UserControl
).
Также добавьте обработчик событий в TextBox
, чтобы, если пользователь нажимает клавишу Esc, он отменял редактирование и, если он нажимал клавишу Enter, текстпринимается, и UserControl
создается.
Отображается текст
Создайте UserControl
и убедитесь, чтоUserPaint
и Opaque
стили установлены в его конструкции (см. SetStyle
- вы также можете рассмотреть OptimizedDoubleBuffer
и AllPaintingInWmPaint
, поскольку это может уменьшить мерцание, хотя для этого требуется дополнительный код рисования).
Переопределите метод OnPaint
в вашем UserControl
и реализовать код для рисования строки (помните, вам также понадобится способ установить текст на элементе управления).
Заключение
Если выподключи все это, шоУ вас есть что-то, что соответствует вашим требованиям.Для дальнейших экспериментов подумайте, как можно устранить необходимость в UserControl
.Удачи и веселья!