2

Wordのウィンドウの位置を制御しようとしています。

私のWinForms(C#)アプリケーションは画面の下半分を占め、Wordのインスタンスを起動します。画面の上半分を取得するには、このインスタンスが必要です。

これは相互運用機能では制御できないため、Wordインスタンスのウィンドウハンドルを取得することができました。次に、SetWindowPos、SetWindowsLongなどをさまざまな方法で使用してみましたが、表示される結果はありませんでした。

バグのあるコードをもう一度投稿するのではなく、最初からやり直したかったので、このようなことを達成した人からの提案を歓迎します。

4

1 に答える 1

2

Application.Moveメソッドを使用できます。または、Application.TopまたはApplication.Leftプロパティを直接設定します。コードは次のようになります。

private Word.Application WordApp = new Word.Application();

    ...

private void buttonClick(object sender, System.EventArgs e)
{
    if (this.openFileDialog.ShowDialog() == DialogResult.OK)
    {
        object fileName = openFileDialog.FileName;
        object visible = true;
        object missing = System.Reflection.Missing.Value;

        WordApp.Visible = true;
        Word.Document aDoc = 
                        WordApp.Documents.Open(ref fileName, ref missing, ref missing,
                                               ref missing, ref missing, ref missing,
                                               ref missing, ref missing, ref missing,
                                               ref missing, ref missing, ref visible);
        aDoc.Activate();
        WordApp.Top = 0;
    }
}

参照にMicrosoftWordオブジェクトライブラリを追加し、関連する名前空間を使用することを忘れないでください。

using Microsoft.Office.Interop.Word;
于 2012-07-11T11:41:42.870 に答える