Вы можете сделать это несколькими способами.Прежде всего, я немного озадачен тем, что вы создаете «пользовательский элемент управления», который наследуется от ComboBox.Вы можете создать пользовательский элемент управления, который наследуется от ComboBox, но вы не можете наследовать как от UserControl (который является обычным определением «пользовательского элемента управления»), так и от ComboBox.
Если вы определяетеправда производная UserControl, это становится немного проще.UserControl, как я уже сказал, не может быть ComboBox, но он может иметь ComboBox.Таким образом, вы можете перетащить и закрепить ComboBox на своей поверхности UserControl, а затем заново реализовать любые свойства, которые вам необходимо использовать, например, Items.Это позволит вам заново создать Предметы как коллекцию по вашему выбору, возможно, строго типизированный Список.Единственная проблема будет состоять в том, чтобы точно знать, что вы хотите повторно реализовать;Есть много полезных свойств ComboBox, к которым вы не сможете получить доступ в Designer или в коде, если не реализуете сквозное свойство, которое изменяет содержащийся ComboBox в вашем UserControl.
Есливы наследуетесь непосредственно от ComboBox, в некоторых случаях он становится немного сложнее, в других - проще.Вы можете скрыть реализацию Items в базовом классе, определив свою собственную и используя ключевое слово new
.При этом вы можете изменить видимость, тип и другие модификаторы.Это предотвратит использование массива объектов в базовом классе кодом, который обрабатывает ваш элемент управления как CustomComboBox (или как вы его называете);они должны использовать ваш строго типизированный массив Items.Ваше новое свойство может по-прежнему иметь доступ к старому (что необходимо для того, чтобы оно работало).Вы также получаете все другие открытые свойства ComboBox бесплатно;вам нужно только переопределить то, что вы хотите изменить.Тем не менее, ссылка на ваш пользовательский ComboBox как на любой базовый класс приведет к тому, что среда выполнения будет использовать версию Items, которая действительна для этого класса;то есть массив объектов, а не ваш строго типизированный.