- PR -

マルチモニター使用について

1
投稿者投稿内容
koujin
会議室デビュー日: 2006/11/30
投稿数: 11
投稿日時: 2006-11-30 18:57
初めて質問させて頂きます。宜しくお願いいたします。

現在、マルチモニターを使用して2画面で別々のフォームを表示させようとしているのですが、マウスで移動せずにコードでこのフォームはセカンダリモニターに表示させるという様な指定は可能なのでしょうか?

開発環境:VS2003 .NET
使用言語:VB


[ メッセージ編集済み 編集者: koujin 編集日時 2006-11-30 19:00 ]
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2006-11-30 19:22
引用:

koujinさんの書き込み (2006-11-30 18:57) より:
現在、マルチモニターを使用して2画面で別々のフォームを表示させようとしているのですが、マウスで移動せずにコードでこのフォームはセカンダリモニターに表示させるという様な指定は可能なのでしょうか?


可能です。GetMonitorInfo APIなどでセカンダリモニターの座標を取得し、その場所にウィンドウを表示するだけです。
koujin
会議室デビュー日: 2006/11/30
投稿数: 11
投稿日時: 2006-11-30 19:30
早速ご回答ありがとうございます。
GetMonitorInfo APIについて調べてみます。

ありがとうございました。
また宜しくお願い致します。
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2006-11-30 22:46
Screen クラスの AllScreens プロパティで全てのディスプレイの情報を取得出来ます。
その中からプライマリ画面でないものを見つけてそのディスプレイの範囲を取得すれば、セカンダリ画面に表示することが出来ると思います。
koujin
会議室デビュー日: 2006/11/30
投稿数: 11
投稿日時: 2006-12-02 13:01
ダッチさんご回答ありがとうございます。

実は開発環境がマルチモニターでは無い為、実際動作確認することができないのですが、単純にセカンダリモニターを指定してフォームを表示させる事は可能なのでしょうか?

またご回答頂いた内容の『ScreenクラスのAllScreensで取得される情報』はプライマリ&セカンダリモニター全ての画面サイズであり、そのさい左側のモニターがセカンダリとなっていれば
Me.Left = 0
Me.Top = 0
と指定すれば左側のセカンダリモニターにそのフォームが表示されるという事であっておりますでしょうか?

ご回答宜しくお願いいたします。
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2006-12-02 20:27
引用:

koujinさんの書き込み (2006-12-02 13:01) より:
ダッチさんご回答ありがとうございます。

実は開発環境がマルチモニターでは無い為、実際動作確認することができないのですが、単純にセカンダリモニターを指定してフォームを表示させる事は可能なのでしょうか?


ごめんなさい。私の環境もマルチモニタ接続が出来ませんので確実なことはいえません。
しかし、セカンダリモニタを指定してというよりは、セカンダリモニタの領域のある座標をフォームの表示位置に設定させることによって、セカンダリモニタにフォームが表示されると思います。

引用:

またご回答頂いた内容の『ScreenクラスのAllScreensで取得される情報』はプライマリ&セカンダリモニター全ての画面サイズであり、そのさい左側のモニターがセカンダリとなっていれば
Me.Left = 0
Me.Top = 0
と指定すれば左側のセカンダリモニターにそのフォームが表示されるという事であっておりますでしょうか?


そうなると思います。
座標の基本は左上を原点として右下に値が増えていきますからね。

推測ばかりで申し訳ないのですが、セカンダリモニタに表示される例として
Screen.AllScreens の0番目がプライマリ、1番目にセカンダリが接続されているとします。
セカンダリモニタの左上にフォームを表示したい場合は、
このようなコードで表示されると思います。
コード:
Dim s As Screen = Screen.AllScreens(1) ' セカンダリモニタ情報を取得
Me.Location = New Point(s.Bounds.X, s.Bounds.Y)

1

スキルアップ/キャリアアップ(JOB@IT)