Запуская пользовательские события / Общая обработка событий

Я вхожу в обработку событий теперь, и это кажется довольно сбивающим с толку меня. Посмотрите, я происхожу из веб-dev среды, таким образом, этот материал события довольно плохо мне знаком.

Я разрабатываю в C# / VS08 и создал свое Приложение в WinForm-разработчике.

Теперь, я создал этот обзор программы;

ProgramContext
 MainForm : Form
 LoginForm : Form

Так, что я хочу сделать, когда пользователь нажимает "Logout" (What является пунктом меню в MainMenu MainForm), что журналы приложения пользователь.

Но как я могу получить доступ к событию "Click" объекта выхода из системы от представления ProgramContext, поскольку существует вся логика входа в систему и т.д.

Я попробовал следующее

MenuItem[] findLogout = MainMenuStrip.Items.Find("logoutMenuItem", true); // Throws NullPointerException
findLogout[0].Click += new EventHandler(LogoutClick);

private void LogoutClick(object sender, EventArgs e)
{
 // Logout user
}

Но продолжайте получать NullPointerException в первой строке.

1
задан Florian Peschka 23 July 2010 в 14:33
поделиться

1 ответ

Проще всего открыть событие в MainForm:

public EventHandler LogOut;

Затем подключитесь к нему из своего ProgramContext :

MainForm form = new MainForm();
form.LogOut += new EventHandler(MainForm_LogOut);

void MainForm_LogOut(object sender, EventArgs e)
{
    // Logout
}

Затем нажмите кнопку выхода из системы. MainMenu, используя следующий код в событии щелчка пункта меню:

private void LogoutClick(object sender, EventArgs e)
{
    if (LogOut != null)
    {
        LogOut(sender, e);
    }
}
2
ответ дан 2 September 2019 в 22:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: