C# для профессионалов. Том II
Шрифт:
try {
Control testControl = (Control)Activator.CreateInstance(testType);
Полезный совет.
System.Windows.Forms.Form
является производным от Control
,
Control
для вывода элементов управления, нарисованных в форме. Если проверить свойство TopLevelControl
, оно всегда будет задано при выводе класса из формы. // нам необходимо убедиться,
// что это не элемент управления "верхнего уровня" ...
if (testControl.TopLevelControl == null) {
// если мы здесь оказались, то это элемент управления ...
AddType(testType);
}
}
Мы можем завершить пример двумя обработчиками исключений:
catch {
// если мы здесь, мы не заботимся об объекте!
}
}
} catch(Exception ее) {
MessageBox.show("The assembly could not be loaded. " + ее.Message);
}
}
Прежде
чем это проверить, необходимо поместить в проект другие элементы управления. Создадим первый класс, называемыйDemoTextBox
, и добавим следующее предложение наследования: public class DemoTextBox : System.Windows.Forms.TextBox
Теперь создадим другой класс, на этот раз с именем
DemoMonthCalendar
, и добавим следующее предложение: public class DemoMonthCalendar : System.Windows.Forms.MonthCalendar
Выполним проект. Должно получиться подобное изображение.
Заключение
Из этой статьи мы узнали, как динамически создавать элементы управления и добавлять их в форму. Мы ввели новый класс, производный от
System.Window.Forms.Button
, который позволяет добавлять дополнительною функциональность и свойства кнопке. Мы увидели также, как соединить с новыми элементами управления методы, вызываемые при инициировании событий. Наконец, мы проверили возможность просмотра сборки в поисках классов и использовали изученную технику для создания простой утилиты, которая загружается и выводит эти классы по команде пользователя.
Поделиться с друзьями: