我有这个代码:
private void button5_Click(object sender, EventArgs e)
{
Magnifier20070401.MagnifierForm mf = new Magnifier20070401.MagnifierForm();
mf.Show();
}
它正确显示了目标表单。但是我不想使用按钮单击,而是想使用Ctrl+M来显示此表单。如果用户Ctrl+M再次输入,我想关闭表单。
我怎样才能做到这一点?
编辑:
这就是我所做的工作:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode.ToString() == "M")
{
Magnifier20070401.MagnifierForm mf = new Magnifier20070401.MagnifierForm();
mf.Show();
}
}
在 Form1 的构造函数中,我添加了:
this.KeyPreview = true;
所以现在当我点击 Ctrl+M 时,我看到了新的表单。我现在需要的是如何做到这一点,如果我再次点击 Ctrl+M 它将关闭新表单。也许使用标志?
编辑:
这就是我现在所做的:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode.ToString() == "M")
{
if (mf == null)
{
mf = new Magnifier20070401.MagnifierForm();
mf.Show();
}
else
{
mf.Close();
this.Invalidate();
}
}
}
但即使这样做。Invalidate(); 我没有看到新表格已关闭。但是如果我使用在 mf.Close(); 上放置一个断点;并进入(F11)我在继续时看到它关闭。
为什么不使用断点就不会关闭?