1

画面の右上隅からフォームの位置を開始しようとしています。しかし、プログラムが実行されているどの画面でもこれを実行したいと思います。では、どうすればこれを行うことができますか?画面解像度を使用する必要がありますか?

4

3 に答える 3

8

プロパティを使用して、フォームの左上のポイントを見つけるためにScreen.AllScreens使用可能なすべてを反復処理し、フォームの場所をフォームとプロパティから作成され た A に設定してみてください。残念ながら、プライマリ以外の画面で動作することを確認できるデュアル スクリーン システムはありません。ScreensBounds ContainsPointScreen.Bounds.RightWidthScreen.Bounds.Top

public Form1()
{
    InitializeComponent();
    this.StartPosition = FormStartPosition.Manual;
    foreach (var scrn in Screen.AllScreens)
    {
        if (scrn.Bounds.Contains(this.Location))
        {
            this.Location = new Point(scrn.Bounds.Right - this.Width, scrn.Bounds.Top);
            return;
        }
    }
}
于 2013-09-17T03:46:50.700 に答える
3
//Get screen resolution
Rectangle res = Screen.PrimaryScreen.Bounds; 

// Calculate location (etc. 1366 Width - form size...)
this.Location = new Point(res.Width - Size.Width); 
于 2015-08-09T14:32:20.627 に答える
0

これにより、画面の左上隅からフォームが開始されます。

Form form1 = new Form();
form1.StartPosition = FormStartPosition.Manual;
form1.Location = new Point(0,0); // new Point(x position on screen, y position on screen)

フォームの左上隅を指定することを覚えておいてください。だから、私たちの計算を使って、あなたが望む場所にそれを手に入れてください.

これは、メイン画面の解像度を取得する方法です。

Rectangle resolution = Screen.PrimaryScreen.Bounds;

または、プロパティを使用してすべての画面のコレクションを取得できScreen.AllScreensます。

于 2013-09-17T02:37:16.127 に答える