Поделиться через


Практическое руководство. Отображение форм из компонентов

Несмотря на то что большинство компонентов не снабжены визуальным интерфейсом, в некоторых случаях такой интерфейс может быть полезен для взаимодействия пользователя с компонентом. Например, компонент, представляющий банковский счет, может отображать специализированную форму с оповещением в случае превышения остатка на счете. Эти функции должны оставаться постоянными в компоненте и не зависеть от клиентского приложения. Поскольку формы являются классами, легко создать экземпляр формы, а потом отобразить его с помощью компонента.

Ниже перечислены два способа создания формы.

  • Можно создать форму вне компонента, что позволяет использовать среду конструктора, такую как Visual Studio, для настройки внешнего вида и поведения этой формы.

  • Можно сделать форму вложенным классом внутри компонента. Преимуществом этого подхода является то, что форма всегда остается частью компонента, и можно всегда контролировать ее использование и отображение. Главный недостаток состоит в том, что использование конструктора для формы в данном случае невозможно и создавать ее придется вручную.

Чтобы отобразить форму из компонента, выполните следующие действия.

  1. Создайте форму Windows Forms, которую нужно отобразить из компонента.

    Если форма, которую нужно отобразить, не находится в той же сборке, что и компонент, то для правильной компиляции необходимо создать ссылку на построение, содержащее форму.

  2. Объявите локальную переменную как новый экземпляр формы.

    Например, если форма называется MyForm, код будет выглядеть следующим образом.

    Dim AFormInstance as New MyForm
    
    MyForm AFormInstance = new MyForm();
    
    MyForm AFormInstance =  new MyForm();
    
  3. Вызовите методы Show, ShowDialog и Hide данной формы для управления отображением, как показано в следующих примерах кода.

    AFormInstance.Show 
    ' Displays the form.
    AFormInstance.ShowDialog 
    ' Displays the form and waits for user interaction before continuing.
    AFormInstance.Hide 
    ' Hides the form.
    
    // Displays the form.
    AFormInstance.Show();
    // Displays the form and waits for user interaction before continuing.
    AFormInstance.ShowDialog();
    // Hides the form.
    AFormInstance.Hide();
    
    // Displays the form.
    AFormInstance.Show();
    // Displays the form and waits for user interaction before continuing.
    AFormInstance.ShowDialog();
    // Hides the form.
    AFormInstance.Hide();
    

См. также

Другие ресурсы

Создание компонентов