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

C# 如何以最大窗口大小将文件从资源管理器打开到特定监视器上?,c#,winforms,C#,Winforms,这是我到目前为止所拥有的,但它只在主监视器上打开。我的目标是在监视器上打开与我单击的按钮关联的文件 private void Form1_Load(object sender, EventArgs e) { Point btnTopLeft = new Point(15, 15); foreach (var screen in Screen.AllScreens) { Button btn = new But

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

    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
方法

我相信这会告诉你哪个显示器的按钮大部分是开着的

这将给你一个长方形的显示器主要是哪个

您还可以给它一个点,它将返回该点所在的监视器

一旦确定了它在哪个监视器上,就可以再次使用
屏幕
类获取监视器的边界并将应用程序的边界设置为该边界

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

这是我首先要做的,尽管可能有更好的方法。希望这有帮助。

尝试使用
屏幕.GetBounds
方法

我相信这会告诉你哪个显示器的按钮大部分是开着的

这将给你一个长方形的显示器主要是哪个

您还可以给它一个点,它将返回该点所在的监视器

一旦确定了它在哪个监视器上,就可以再次使用
屏幕
类获取监视器的边界并将应用程序的边界设置为该边界

   this.Bounds = Screens.AllScreens[1].Bounds;
这是我首先要做的,尽管可能有更好的方法。希望这有帮助。

您想“打开文件”吗?或者你只是指在一个特定的目录中打开资源管理器?可能是你想要“打开一个文件”的副本?或者你只是指在一个特定的目录中打开资源管理器?可能是