2012-03-01 9 views
1

マルチモニタシステムでWindowsフォームを使用すると、ShowDialog()のフォームの位置をStartPositionの列挙型以外の特定の列挙型に設定できますか?私はマニュアル位置プロパティの宣言で列挙しようとしましたが、それは必ずしも呼び出し元のウィンドウではないWindows用のプライマリディスプレイ上の場所を選択します。ShowDialog()でウィンドウの表示位置を選択する

私の最適な解決策は、関数呼び出し時にマウスポインタに関連してフォームを配置することです。

答えて

1

マウスの位置を取得し、その位置を設定する必要があります。私がバットからすぐに考えることができる2つの方法があります。

  1. 位置を取得するには、Cursorクラスを使用します。 this.Location = new Point(Cursor.Position.X, Cursor.Position.Y);などがあなたの言語で利用できる場合は、私はそうするでしょう。

  2. GetCursorPos関数を使用できます。あなたはC#またはVBを使用している場合は、それを定義する必要があります。詳細については、のPInvokeに見つけることができます:http://www.pinvoke.net/default.aspx/user32.getcursorpos

+0

Cursor.Position.XとCursor.Position.Y – sammarcow

+0

あなたが正しいですが、それを変更しました。編集: 'this.Location = Cursor.Position; 'を設定するだけで、少し小さくすることができます。positionプロパティはPointでなければなりません。 – ozdrgnaDiies

関連する問題