Это событие для обнаружения последовательности клавиш: < /p>
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == (Keys.Alt | Keys.M))
{
ToggleMagnifier();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
< /code>
И вот метод переключения: < /p>
private void ToggleMagnifier()
{
if (magnifierForm == null || magnifierForm.IsDisposed)
{
magnifierForm = new MagnifierForm()
{
Size = new Size(150, 150),
AutoClose = true,
HideCursor = true,
ZoomFactor = 2,
NearestNeighborInterpolation = false
};
magnifierForm.Show();
}
else
{
magnifierForm.Close();
magnifierForm.Dispose(); // Explicitly dispose the form
magnifierForm = null;
}
}
Я добавил точку останова в else в строке:
magnifierForm.Close();
и на втором нажжении alt + m он достигает линии, а затем, если я продолжу, Magniferform закрывается. Но если я не использую точку останова, форма никогда не закрывается во втором нажжении alt + m .
может ли проблема быть в коде Magnifierform ? В этой части: < /p>
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
mouseDown = false;
if (HideCursor)
Cursor.Show();
if (AutoClose)
Dispose();
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -close-the
Показ/Close Toggle Form не работает с Keys Alt + M, пытаясь закрыть форму. Как заставить его работать также при закрытии ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Застрял, пытаясь заставить мой графический интерфейс входа работать на Java
Anonymous » » в форуме JAVA - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-