如何检测表单何时从一个屏幕切换到另一个屏幕

时间:2019-09-04 21:32:31

标签: c# .net windows winforms

我需要一个事件或通知,这些事件或通知会在表单从一个屏幕更改为另一个屏幕时发出信号。

我知道我可以对此进行轮询,但是我正在寻找一种非轮询解决方案。

1 个答案:

答案 0 :(得分:0)

您可以在控件上使用ResizeEnd事件,该事件在调整控件大小或移动时将触发该事件。 然后,您可以使用Screen.FromControl()获取实际屏幕。 示例:

public partial class Form1 : Form
{
    private Screen _actualScreen;

    public Form1()
    {
        InitializeComponent();
        _actualScreen = Screen.FromControl(this);
        this.ResizeEnd += Form1_ResizeEnd;
    }

    private void Form1_ResizeEnd(object sender, EventArgs e)
    {
        if(_actualScreen != Screen.FromControl(this))
        {
            //Your treatment
        }
    }
}

我希望此解决方案可以为您提供帮助!