C# 在运行期间调整屏幕工作区域的大小

C# 在运行期间调整屏幕工作区域的大小,c#,winforms,C#,Winforms,我使用以下代码确定侧面板的位置和方式: var sc = Screen.FromHandle(this.Handle); var w = sc.WorkingArea.Width / 6; var h = sc.WorkingArea.Height; var x = sc.WorkingArea.Right - w; var y = sc.WorkingArea.Top; this.Size = new Size(w, h); this.Location = new Point(x, y);

我使用以下代码确定侧面板的位置和方式:

var sc = Screen.FromHandle(this.Handle);
var w = sc.WorkingArea.Width / 6;
var h = sc.WorkingArea.Height;
var x = sc.WorkingArea.Right - w;
var y = sc.WorkingArea.Top;

this.Size = new Size(w, h);
this.Location = new Point(x, y);
侧面板只是另一种形式。 这工作非常好,正是我想要的。然而,我有一些程序,调整了屏幕工作区域的大小,以便其他应用程序在最大化时只占用屏幕的一个受限区域

我在网上找不到关于这个话题的任何信息,我想是因为我没有正确的术语来描述我的目标


欢迎您的任何意见

我猜您希望应用程序专门调整到某个大小并转到某个位置,而不是全屏显示

据我所知,只有在使用“Sizable”布局选项时使用自定义按钮作为调整大小控件,而不是现有的标准控件时,才可能实现此功能

您可以创建一个按钮,并将以下内容写入按钮中,然后单击“无效”:

private void button_Click(object sender, EventArgs e)
{

    this.Location = new Point(/*XPosition*/, /*YPosition*/);
    this.Size = new Size(/*HEIGHT*/, /*WIDTH*/);
    
}
这将使窗体将其位置和大小更改为所需的大小和位置


我希望我正确地理解了您,并希望这对您有所帮助。

这是不可能的。设置表单的MaximumSize属性以防止其填充工作区域。对于自定义放置,您必须重写WndProc()并处理WM_GETMINMAXINFO消息。