質問

私の周り、検索のビットを持っていたが、私が探していたものに似た何かを見つけることができませんでした。私はC#を使用して、二次/三次のモニターやプロジェクターに異なる内容を表示する方法を知ることに興味があります。基本的に、私が達成したいんだ、1つの特定の画面上のプレゼンタービュー(ラパワーポイント)(プライマリディスプレイ)のいくつかのフォーム、および二次スクリーンやプロジェクターに出力を持つことです。私は実際に複数のディスプレイ出力で何かの開発を試みたことがありませんので、任意のガイダンスは、おそらくかなり明白レベルである必要があります。

誰かがいただければ幸いですC#でこの種のものを処理する方法に関して正しい方向に私を指すことができれば!

役に立ちましたか?

解決

は、Windowsが知っているすべてのモニターのリストにアクセスするにはSystem.Windows.Forms.Screen.AllScreensプロパティを使用することができます。あなたはユーザーによって設定されていないディスプレイを利用するために探しているなら、それはより困難なる - 。あなたは、おそらく初期化とDirectXを使用してディスプレイアダプタにアクセスする必要があると思います。

他のヒント

ただ、(私は+それに+1を付けました)Kevenの答えに拡大して、Screen.AllScreens配列を使用すると、Screenオブジェクトの配列を持っています。 Screenオブジェクトでは、プライマリ画面であるかを決定するために使用することができますIsPrimaryと呼ばれるプロパティがあり、そしてそれは二次的(当たり前)であり、それはまた、あなたのすべての座標をバック与え長方形であるWorkingAreaと呼ばれる性質を持っています2番目の画面。これについてのクールなことだが、二次の画面がプライマリの左側になるように構成されているとしましょうとしても、WorkingArea.Xは負の数になります、そしてあなたがそこにフォームまたは何を置くことができるということです。

あなたと対話する必要があります。主なクラスの一つは、<のhref =「http://msdn.microsoft.com/en-us/library/system.windows.forms.screen.aspx」のrel = "nofollowをありますnoreferrer ">画面を(これはリサイズ名前空間にあります)。一般的にはすべての画面は、あなたがそれぞれのプロパティを取得するには、画面のクラスを使用することができます作業領域の集合として扱われます。

あなたはこのようなすべての画面を得ることができます...

Screen [] screens = Screen.AllScreens;

ここのマルチモニタのプログラミングを行うことについての短い記事ですC#でます。

また、あなたがそうでなければ、それは常にプライマリ画面に表示されます第二画面に表示するあなたの窓に「手動」にプロパティ「開始位置」を設定することを忘れないでください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top