Я работаю над некоторым кодом, который я не написал, приложением C #, использующим Windows Forms, с которым я не очень знаком.В приложении есть главное меню (contextMenuStrip в Designer), которое открывается при щелчке по нему, но при повторном щелчке по имени меню оно не закрывается.Он мигает, как будто он закрывается и сразу же снова открывается.На самом деле - он закрывается, пока мышь не работает, но затем при наведении мыши снова открывается.
РЕДАКТИРОВАТЬ: Хорошо, поэтому я вижу, что он делает, просто не уверен, как это исправить.Заголовок меню - это метка с событием, прикрепленным к «клику», который открывает меню.Итак, нажатие на заголовок открывает меню.Но затем, нажав на нее еще раз, также открывается меню.Я не думаю, что могу проверить состояние формы, хотя, потому что при втором щелчке меню закрывается при mouseDown, поэтому оно уже закрывается к тому моменту, когда щелчок мышью происходит по mouseUp ...
Другими словами, когда меню открыто, нажатие на заголовок приводит к закрытию меню - я думаю, потому что поведение по умолчанию для меню - закрытие, когда вы щелкаете в другом месте.Таким образом, меню закрывается, но затем, когда пользователь поднимает палец, Click даже запускается снова, и меню снова открывается.Так как обойти это?
private void labelMainMenu_Click(object sender, EventArgs e)
{
((EcPaMainForm)Owner).vShowMainMenu(labelMainMenu);
}
public void vShowMainMenu(Control oButton)
{
contextMenuStripMain.Show(oButton.Parent, (oButton.Right+oButton.Left)/2, oButton.Bottom);
}