我想在系统托盘正上方的右下角显示一个 winform,
我该怎么做?这是我的代码:
public static void Notify()
{
Rectangle workingArea = Screen.PrimaryScreen.WorkingArea;
Form fm = new Form();
fm.ClientSize = new Size(200, 200);
int left = workingArea.Width - fm.Width;
int top = workingArea.Height - fm.Height;
fm.Location = new Point(left, top);
fm.ShowInTaskbar = false;
fm.ShowIcon = false;
fm.MinimizeBox = false;
fm.MaximizeBox = false;
fm.FormBorderStyle = FormBorderStyle.FixedToolWindow;
fm.Text = "Test";
fm.TopMost = true;
fm.Show();
}
最佳答案
我刚刚尝试了这个并且它对我有用(注意:这段代码必须出现在表单第一次显示之后——例如,你可以将它放在表单的 Load
事件处理程序中,或者在对 Show
的任何调用之后简单地包含它):
Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
int left = workingArea.Width - this.Width;
int top = workingArea.Height - this.Height;
this.Location = new Point(left, top);
是否使用 WorkingArea
或 Bounds
取决于您所说的“over”是什么意思:如果您的意思是“在前面”,则使用 Bounds
,因为它包括覆盖整个屏幕的区域(包括系统托盘占用的空间);如果您的意思是“上方”,则使用 WorkingArea
,它只包含用户的桌面。
另外让我澄清一下,您希望在下面显示您的实际表单,对吗?如果你想在通知区域有一个图标,那就是 NotifyIcon
组件是为了。
关于c# - 在通知区域显示 winform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3644315/