gpt4 book ai didi

c# - 将我的表单保持在任务栏上方?

转载 作者:行者123 更新时间:2023-11-30 20:55:05 26 4
gpt4 key购买 nike

我的总体目标是渲染第二个(或第三个、第四个……)鼠标光标。为此,我创建了一个无框、最顶部的透明窗口。我可以在此窗口上绘图(上面有 4 个按钮以显示它正确覆盖了整个桌面)- 但是当我单击任务栏时,它会被带到顶部并覆盖我的按钮和画线。

如何让我的窗口保持在任务栏上方

或者,有没有一种方法可以在屏幕的“最终”版本上绘图?

这是我的 .Designer.cs 文件中的代码:

this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.CausesValidation = false;
this.ClientSize = new System.Drawing.Size(332, 332);
this.ControlBox = false;
this.Controls.Add(this.button4);
this.Controls.Add(this.button3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "Screen";
this.ShowIcon = false;
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
this.StartPosition = System.Windows.Forms.FormStartPosition.WindowsDefaultBounds;
this.TopMost = true;
this.TransparencyKey = System.Drawing.Color.White;

最佳答案

在不分析这样做的确切动机以及这种方法是否是最佳方法的情况下,您应该注意到任务栏的行为等同于任何其他窗口的行为:TopMost 可以在没有任何限制。另一方面,它被认为在“WorkingArea”之外,因此,根据您使用的属性,它可能会被忽略。请查看下面的示例代码以更好地理解这一点。

Main Form 覆盖任务栏上方的所有可用空间:

this.ClientSize = new System.Drawing.Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Left, Screen.PrimaryScreen.WorkingArea.Top);

Main Form 覆盖屏幕的整个可用空间:

this.ClientSize = new System.Drawing.Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
this.Location = new Point(Screen.PrimaryScreen.WorkingArea.Left, Screen.PrimaryScreen.WorkingArea.Top);

因此,只要记住它代表屏幕的 WorkingAreaBounds 之间的区别,您就可以毫无问题地将窗体放在任务栏的顶部。

澄清:这个答案强调了任务栏与屏幕上任何其他部分的处理方式不同的可能原因。这并不意味着您必须使表单与整个屏幕一样大才能将其放在任务栏上;您可以随时将其放在任务栏上,大小随心所欲。您必须牢记的是,WorkingArea 不提供屏幕的整个尺寸,而只提供任务栏上方的区域;如果您想考虑任务栏,请考虑 Bounds

关于c# - 将我的表单保持在任务栏上方?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544813/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com