none
當Form內有Button控制項時,如何讓Form取得Focus RRS feed

  • 問題

  • 各位前輩好:

    最近在做個測試程式遇到的小問題,

    我想讓Form根據方向鍵移動,如:按下→就往右邊移動。

    如果Form上面是空白的,我按方向建會移動。

    但是Form上面有Button控制項時,焦點就會在Button控制項,我按方向鍵後Form就不能移動。

    移動的程式碼如下

    private void Form3_KeyDown(object sender, KeyEventArgs e)
    {
        Point CurrentPoint = this.Location;
        int Point_X = CurrentPoint.X;
        int Point_Y = CurrentPoint.Y; 
        int Step = 10;
    
        if (e.KeyCode == Keys.Up)
        {
            Point_Y = Point_Y - Step;
        }
        else if (e.KeyCode == Keys.Down)
        {
            Point_Y = Point_Y + Step;
        }
        else if (e.KeyCode == Keys.Left)
        {
            Point_X = Point_X - Step;
        }
        else if (e.KeyCode == Keys.Right)
        {
            Point_X = Point_X + Step;
        }
    
        this.Location = new Point(Point_X, Point_Y);
    }

    確認Form的Focus的程式碼如下

    private void Form3_MouseClick(object sender, MouseEventArgs e)
    {
        this.Focus();
        Console.WriteLine(this.Focused);
    }

    當Form沒有Button控制項,Form的Focus為True,所以我按下方向鍵有反應。

    但是Form有Button控制項,Form的Focus為Flase,所以我按下方向鍵沒有反應。

    請問各位前輩,

    Form內有Button控制項時,如何讓Form取得Focus?

    2013年6月28日 上午 02:23

解答

所有回覆