Я вхожу в обработку событий теперь, и это кажется довольно сбивающим с толку меня. Посмотрите, я происхожу из веб-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 в первой строке.
Проще всего открыть событие в 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);
}
}