我試圖使一個窗體是一個MDI容器,當我按下數字鍵盤(1-9)上的按鈕時,一個小窗體(這將是表單的MDI子元素)將出現在數字在數字鍵盤位置的相對位置(5在中間,9在右上角),然後我想程序的焦點返回到mdi容器,所以你可以再次按下按鈕。顯示一個mdi孩子後,將焦點設置到一個mdi容器
我在MDI容器中的按鍵事件設置是這樣的:
private void MdiClient_KeyPress(object sender, KeyPressEventArgs e)
{
int num;
if (e.KeyChar >= '1' && e.KeyChar <= '9')
{
num = e.KeyChar - '0';
PhysicalChild pc = new PhysicalChild();
pc.MdiParent = this;
pc.Show();
pc.Location = new Point(num % 3 * Width/2 - 50 * num, num/3 * Height/2 - 50 * num);
pc.Size = new Size(50, 50);
Focus();
}
}
問題是,它並沒有將焦點返回到MDI容器,甚至沒有,如果我點擊在容器上的鼠標地區,我不得不關閉MDI的孩子,因爲它接受更多的按鈕。
我在做什麼錯,我該如何解決?
謝謝。
@AnnL。忘記第二個問題,原來我的公式是錯誤的,但第一個問題呢? – shoham