0

アプリケーションを作成しましたが、フォーカスに問題があります。フォームの読み込み時に別のメイン フォームのフォーカスを無効にするにはどうすればよいですか?

4

1 に答える 1

0

WPF フォームには ShowActivated プロパティがあります。これを false に設定すると、フォームはフォーカスを取得しません。

OnActivated メソッドをオーバーライドすることもできます。

protected override void OnActivated(EventArgs e)
    {
        base.OnActivated(e);

        //Set the window style to noactivate.
        WindowInteropHelper helper = new WindowInteropHelper(this);
        SetWindowLong(helper.Handle, GWL_EXSTYLE,
            GetWindowLong(helper.Handle, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
    }   

    private const int GWL_EXSTYLE = -20;
    private const int WS_EX_NOACTIVATE = 0x08000000;

    [DllImport("user32.dll")]
    public static extern IntPtr SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

    [DllImport("user32.dll")]
    public static extern int GetWindowLong(IntPtr hWnd, int nIndex);
于 2013-05-29T08:32:49.637 に答える