Как изменить область элемента управления в режиме дизайна?

Когда я перетаскиваю TextBox из панели инструментов в WinForm, я могу перетаскивать его по форме, как мне нравится.

Теперь я создаю новый класс и наследую его от TextBox. Я добавляю новое свойство под названием CaptionLabel. Когда установлено значение, я динамически создаю элемент управления Label, устанавливаю его значение и, наконец, добавляю метку в коллекцию родительских элементов управления TextBox.

Результатом является «LabeledTextBox».

Однако при выборе TextBox я по-прежнему выбираю только TextBox ... прямоугольник выбора не включает метку, созданную динамически.

Как мне расширить прямоугольник так, чтобы он также содержал метку, и сделать так, чтобы метка «знала», что она принадлежит TextBox?

Или есть лучший способ создать помеченные элементы управления?


person Mephisztoe    schedule 19.05.2010    source источник


Ответы (1)


если я правильно понимаю, вам нужно, чтобы одна метка и один TextBox были одним элементом? если я прав, вам нужно создать новый элемент управления, для этого создайте новый тип проекта WindowsFormsControlLibrary?

person Andriy Mytroshyn    schedule 19.05.2010
comment
да. У меня уже есть библиотечный проект. Есть разные способы создания собственных элементов управления. Я мог бы поместить метку и текстовое поле в пользовательский элемент управления, но тогда мне пришлось бы раскрывать все их свойства вручную. Однако, поскольку у меня уже есть собственные (сложные) пользовательские элементы управления для расширенного TextBox, а также для Label, я не хотел иметь эти накладные расходы и вместо этого просто наследовал от моего собственного TextBox и помещал создание метки (при необходимости) в новая недвижимость. - person Mephisztoe; 19.05.2010