универсальная функция открытой формы - PullRequest
0 голосов
/ 12 октября 2011

кто-нибудь написал универсальную функцию "LaunchForm"? Для всех пунктов меню, которые открывают форму, я хотел бы написать одну функцию, которая будет запускать форму, а не писать один и тот же код несколько раз.

любые советы будут очень полезны.

Это winforms + vb.net

спасибо TR

Ответы [ 2 ]

2 голосов
/ 13 октября 2011

Ты имеешь в виду что-то подобное?

C #

public F Launch<F>() where F : Form, new()
{
    F dlg = new F();
    dlg.MdiParent = this;
    dlg.Show();
    return dlg;
}

VB.NET

Public Function Launch(Of F As {Form, New})() As F
    Dim dlg As New F()
    dlg.MdiParent = Me
    dlg.Show()
    Return dlg
End Function
0 голосов
/ 12 октября 2011

Вы можете прикрепить тип формы к свойству menuTem .Tag.Подключите один обработчик событий ко всем событиям щелчка элемента меню и передайте значение свойства .Tag (тип формы) функции, которая создала новый экземпляр и отобразила его.

Альтернативно, если каждая форма должна бытьединый элемент, в котором можно создать словарь (MenuItem, Form), предварительно заполнить экземплярами форм и выполнить соответствующий поиск / показ.Или даже пропустите словарь и всплывающее окно и экземпляр формы в свойстве menuTem .Tag.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...