【问题标题】:Resize the screens WorkingArea during runtime在运行时调整屏幕 WorkingArea 的大小
【发布时间】:2021-04-07 01:47:26
【问题描述】:

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

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);

侧面板只是另一种形式。 这工作得很好,正是我想要的。但是,我有一些程序可以调整屏幕 WorkingArea 的大小,以便其他应用程序在最大化时只占用屏幕的受限区域。

考虑到这个话题,我在网上找不到任何信息,我想是因为我的目标没有正确的术语。

感谢任何输入!

【问题讨论】:

  • 这是不可能的。设置窗体的MaximumSize 属性以防止它填充工作区。对于自定义放置,您必须覆盖 WndProc() 并处理 WM_GETMINMAXINFO 消息。

标签: c# winforms


【解决方案1】:

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

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

您可以创建一个按钮并将以下内容写入按钮单击无效:

private void button_Click(object sender, EventArgs e)
{

    this.Location = new Point(/*XPosition*/, /*YPosition*/);
    this.Size = new Size(/*HEIGHT*/, /*WIDTH*/);
    
}

这将使表单的位置和大小更改为您想要的大小和位置。

我希望我对您的理解正确,希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2014-06-20
    • 2018-04-30
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多