2014-03-13 8 views
0

У меня есть две формы (называемые form1 как mdi container и form2) с opentoolstripmenuitem в form1, когда opentoolstripmenuitem кликнул form2 и opentoolstripmenuitem стал отключен, но когда я нажимаю closebox в правом верхнем углу формы2 opentoolstripmenu по-прежнему отключается, я хочу, чтобы он снова включался, когда нажал на кнопку closebox.Включение/выключение ToolStripMenuItem при нажатии

Вот мой код в Form1:

private void openToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    openToolStripMenuItem.Enabled = false; 
    Form2 newMDIChild = new Form2(); 
    newMDIChild.MdiParent = this; 
    newMDIChild.Show();    
} 

Какой совет ??

+2

Добавить в «закрытие» обработчик событий на 'newMDIChild', что позволит вновь включить свой пункт меню. – EthanB

+0

Вы можете сделать это программно в 'openToolStripMenuItem_Click'. – EthanB

+0

Зачем вообще отключать его? Почему бы просто не активировать открытый экземпляр, если он снова нажат? – jmcilhinney

ответ

1

В обработчик щелчка, создать обработчик для закрытия или закрытое мероприятие для Form2:

newMDIChild.FormClosed += new FormClosedEventHandler(newMDIChild_FormClosed); 

и

void newMDIChild_FormClosed(object sender, FormClosedEventArgs e) 
{ 
     openToolStripMenuItem.Enabled = true; 
} 
1

Простой Просто используйте ShowDialog() в форме и включить его после ShowDialog

private void openToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
openToolStripMenuItem.Enabled = false; 
Form2 newMDIChild = new Form2(); 
newMDIChild.MdiParent = this; 
newMDIChild.ShowDialog(); 
openToolStripMenuItem.Enabled = true;   
} 

Следующий код после showdialog не будет выполнен до закрытия диалогового окна

Надеется, что это работает

Благодарности

 Смежные вопросы

  • Нет связанных вопросов^_^