我实现的
我想要阻止的
我已经搜索了很长时间,有一些解决方案关于捕获键,但任何解决方案,以停止这一点。
请帮帮我。
+复制此问题的条件
private void tsbChildForm1_Click(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
if (m_frmChild != null)
{
if (typeof(Form1) != this.ActiveMdiChild.GetType())
{
m_frmChild = new Form1();
OpenChildForm(m_frmChild);
}
else
{
// do nothing. prevent memory increase
}
}
else
{
m_frmChild = new Form1();
OpenChildForm(m_frmChild);
}
}
private void OpenChildForm(Form frmChild)
{
if (LoadExistForm(frmChild))
{
// do nothing.
}
else
{
frmChild.MdiParent = this;
frmChild.WindowState = FormWindowState.Maximized;
frmChild.Show();
}
}
private bool LoadExistForm(Form frmChild)
{
foreach (Form frmEach in this.MdiChildren)
{
if (frmEach.Name.Equals(frmChild.Name, StringComparison.OrdinalIgnoreCase))
{
frmEach.Select();
frmEach.WindowState = FormWindowState.Maximized;
frmChild.Dispose();
return true;
}
}
return false;
}


发布于 2018-09-24 11:55:17
将PreviewKeyDown事件处理程序添加到MDI子窗体中。它可以过滤您希望您的子窗体处理的密钥。
private void Form_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Up:
case Keys.Down:
case Keys.Left:
case Keys.Right:
e.IsInputKey = true;
break;
}
}https://stackoverflow.com/questions/42336825
复制相似问题