您好,我正在制作一个潜意识消息程序,该程序具有一种出现的形式,然后很快消失。
我现在试图弄清楚如何制作它,以便每次弹出时它都位于随机位置,但最重要的是我正在努力使它保持在某人屏幕尺寸的边界内
我一直在努力寻找相关的代码,并且也看到了有关使用Width来设置控件的一些信息,但是我也找不到该控件的含义。
希望方向正确
谢谢。
答案 0 :(得分:0)
如果要以编程方式设置表单大小,请将表单的StartPosition
属性设置为Manual
。
您可以通过以下方式获取屏幕尺寸
Rectangle screen = Screen.PrimaryScreen.WorkingArea;
您还需要一个Random
对象。确保仅创建一次,例如通过将其设置为静态和只读。
private static readonly Random _random = new Random();
现在您可以得到随机职位,并使用来打开表格
var frm = new MySubliminalForm();
int x = _random.Next(screen.Width - frm.Width); // range [0 .. screen width - form width].
int y = _random.Next(screen.Height - frm.Height); // range [0 .. screen height - form height].
frm.Location = new Point(x, y);
frm.Show();
这将在最大位置显示屏幕(大矩形)和窗口(小矩形)。如您所见,窗口的X位置是屏幕宽度减去窗口宽度,而Y位置是屏幕高度减去窗口高度。
+------------------screen width------------+
| : |
| : |
| screen : |
| y = Hscr - Hwin |
| : |
| V |
| .....x = Wscr - Wwin ...> o-window width-+
| | |
| | window |
| | |
+---------------------------+--------------+