如何以最大窗口大小从资源管理器打开文件到特定监视器

本文关键字:文件 监视器 资源管理器 窗口大小 | 更新日期: 2023-09-27 18:19:06

这是我到目前为止所做的,但它只在主监视器上打开。我的具体目标是打开与我所单击的按钮相关联的监视器上的文件。

    private void Form1_Load(object sender, EventArgs e)
    {
        Point btnTopLeft = new Point(15, 15);
        foreach (var screen in Screen.AllScreens)
        {
            Button btn = new Button();
            btn.Text = screen.DeviceName;
            btn.Size = new Size(100, 23);
            btn.Location = btnTopLeft;

            btn.Tag = screen;
            btn.Click += Btn_Click;
            this.Controls.Add(btn);
            btnTopLeft.Offset(0, btn.Height + 7);
        }
    }
    private void Btn_Click(object sender, EventArgs e)
    {
        if (sender == null || !(sender is Button))
            return;
        var btn = (Button)sender;
        if (btn.Tag == null || !(btn.Tag is Screen))
            return;
        var screen = (Screen)btn.Tag;
        System.Diagnostics.Process.Start("explorer.exe", @"c:'");
    }

如何以最大窗口大小从资源管理器打开文件到特定监视器

尝试使用Screen.GetBounds方法。

我相信这会告诉你你的按钮最常在哪个显示器上https://msdn.microsoft.com/en-us/library/h6dba0zt%28v=vs.110%29.aspx

这将告诉你矩形最常打开的显示器https://msdn.microsoft.com/en-us/library/5z2btd02%28v=vs.110%29.aspx

你也可以给它一个Point,它将返回该点所在的监视器。

一旦您弄清楚它在哪个监视器上,您就可以再次使用Screen类来获取监视器的边界,并将应用程序的边界设置为该边界。

交货。

   this.Bounds = Screens.AllScreens[1].Bounds;

这是我首先处理它的方式,尽管可能有更好的方法。