Есть у меня некая программа, в которой присутствует боковая выдвигающаяся панель. Поскольку движение панели реализовано с помощью взаимодействия timer'а (ибо пишу в C# Window Forms), то нужна проверка на выход за границы выдвигающейся панели (split_view), чтобы запустить таймер ухода панели. Проблема возникла в том, что в split_view есть еще некоторые панели (своего рода кнопки). Когда наводишь на split_view (незадействованную часть) и затем обратно на панели (кнопки), то программа считает, что курсор вышел за границы split_view и прячет ее. Вот, собственно, и вопрос: как реализовать корректную проверку? Вот код, который есть на данный момент:
// возникает, когда курсор вышел за границы split_view
private void Panel_split_MouseLeave_1(object sender, EventArgs e)
{
flag = false;
keyTimer = true;
timer1.Start();
}
private void AddS(int x)
{
if(flag && keyTimer)
{
panel_split.Width += x;
} else
{
panel_split.Width -= x;
}
if ((panel_split.Width <= -1) || (panel_split.Width >= 200))
{
keyTimer = false;
}
else
{
keyTimer = true;
}
}
private void Timer1_Tick(object sender, EventArgs e)
{
if(keyTimer)
{
AddS(20);
} else
{
timer1.Stop();
}
}
В общем, решил пойти по пути малого сопротивления. Заменил функцию Panel_split_MouseLeave_1(...) на функцию, проверяющую наведение на главную форму, то есть правую часть программы. Если определенный boolean равен true, то запускаем таймер ухода панели, в ином случае ничего не делаем.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть игровой объект , который по дефолту имеет свой нормальный размер спрайта , но после его замены он приобретает другой размерКод которым...
У меня есть файл Resourcerexs, а также string'овое название файла
Всем привет, нужно на "Чужом" приложении кликнуть на менюВсе хорошо, но меню всплывающие и после увода курсора пропадает, а на C# после клика...