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)