private void ChangeScreen(Form aForm, int screenId) { // 先將 Form 設定為 Normal aForm.WindowState = FormWindowState.Normal; // 改 Location aForm.StartPosition = FormStartPosition.Manual; if (screenId < Screen.AllScreens.Length) { aForm.Location = Screen.AllScreens[screenId].WorkingArea.Location; } // 最後設定成 Maximized aForm.WindowState = FormWindowState.Maximized; }
2010年9月8日 星期三
多螢幕環境下,指定螢幕顯示畫面 (C#)
2010年9月2日 星期四
多螢幕環境下,指定螢幕顯示畫面 (Delphi 5)
這個 Procedure 是從 Delphi 2009 的 Forms.pas 中挖出來的,在多螢幕環境之下可以將 Form 顯示在指定的螢幕上,對於要開發多螢幕應用程式的人有一些用處。
procedure MakeFullyVisible(AForm: TForm; AMonitor: TMonitor); var ALeft: Integer; ATop: Integer; begin if AMonitor = nil then AMonitor := AForm.Monitor; ALeft := AForm.Left; ATop := AForm.Top; if AForm.Left + AForm.Width > AMonitor.Left + AMonitor.Width then ALeft := AMonitor.Left + AMonitor.Width - AForm.Width; if AForm.Left < AMonitor.Left then ALeft := AMonitor.Left; if AForm.Top + AForm.Height > AMonitor.Top + AMonitor.Height then ATop := AMonitor.Top + AMonitor.Height - AForm.Height; if AForm.Top < AMonitor.Top then ATop := AMonitor.Top; AForm.SetBounds(ALeft, ATop, AForm.Width, AForm.Height); end;呼叫方法是:
MakeFullyVisible(Form1, Screen.Monitors[0]); // 將 Form1 顯示在第一個螢幕 MakeFullyVisible(Form2, Screen.Monitors[1]); // 將 Form2 顯示在第二個螢幕
訂閱:
文章 (Atom)