如何以最大窗口大小从资源管理器打开文件到特定监视器
本文关键字:文件 监视器 资源管理器 窗口大小 | 更新日期: 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;
这是我首先处理它的方式,尽管可能有更好的方法。