在C#中,要處理顯示器變化,可以使用System.Windows.Forms.Screen
類。這個類提供了關于屏幕的信息,例如屏幕尺寸、分辨率等。當顯示器配置發生變化時,例如連接或斷開顯示器,Windows會自動通知應用程序。為了處理這些變化,你需要監聽SystemEvents
中的DisplaySettingsChanged
事件。
以下是一個簡單的示例,展示了如何在C#中處理顯示器變化:
using System;
using System.Windows.Forms;
namespace DisplayMonitorChange
{
class Program
{
[STAThread]
static void Main()
{
// 添加事件處理程序
SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
// 保持窗口打開
Application.Run();
}
private static void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
// 獲取當前屏幕信息
Screen currentScreen = Screen.PrimaryScreen;
DisplayMode displayMode = currentScreen.CurrentDisplayMode;
// 輸出新的顯示器信息
Console.WriteLine($"Display resolution: {displayMode.Width}x{displayMode.Height}");
Console.WriteLine($"Display refresh rate: {displayMode.RefreshRate} Hz");
}
}
}
在這個示例中,我們首先訂閱了SystemEvents.DisplaySettingsChanged
事件。當顯示器配置發生變化時,事件處理程序SystemEvents_DisplaySettingsChanged
會被調用。在這個處理程序中,我們獲取當前屏幕的信息(分辨率和刷新率),并將它們輸出到控制臺。
請注意,這個示例僅適用于Windows Forms應用程序。如果你使用的是WPF或其他類型的應用程序,你需要使用相應的方法來處理顯示器變化。