c# - Спрятать MenuStrip когда курсор не находится на нем

182
21 июня 2018, 11:10

Мне необходимо показывать MenuStrip только когда на него наведен курсор, а когда курсор покидает MenuStrip - прятать. Как я понял, сделать это с можно помощью значения Visible:

public void MainMenuStrip_MouseEnter(object sender, EventArgs e)
{
    MainMenuStrip.Visible = true;
}
public void MainMenuStrip_MouseLeave(object sender, EventArgs e)
{
    MainMenuStrip.Visible = false;
}

Но этот код не работает. Как правильно обрабатывать перемещения курсора относительно меню?

Answer 1

Можно проверять нахождение курсора по координатам и отображать элемент, данный код разместить в событии MouseMove у формы

if (e.Y <= menuStrip1.Height && !menuStrip1.Visible)
    menuStrip1.Visible = true;
if (e.Y> menuStrip1.Height && menuStrip1.Visible)
    menuStrip1.Visible = false;
Answer 2

Добавить control в панель и проверять мышку на нахождение в этой панели(панель не прятать)

READ ALSO
Динамический анонимный тип

Динамический анонимный тип

обычно перед создание анонимного типа сразу известно какие поля будут в него входить, но что, если у меня нет этой информации и мне требуется...

152
Удаление кнопок по времени

Удаление кнопок по времени

День добрый, был бы признателен, если бы подсказали как удалять кнопки и ставить на их место соседнюю по наступлению времени

202
парсинг простой структуры JSON [дубликат]

парсинг простой структуры JSON [дубликат]

На данный вопрос уже ответили:

137