C#中怎么设置"动态生成窗体"的位置

2025-01-07 00:56:06
推荐回答(2个)
回答1:

修改动太生成窗口的Form.StartPosition 属性,此属性为枚举(FormStartPosition)类型,修改为FormStartPosition.Manual,就可以能过设置新窗体的Location 属性来修改窗口的位置。

            Point p = new Point(200, 100);
            Form win = new Form();
            win.Width = 150;
            win.Height = 50;
            win.Text = "新窗口";
            win.StartPosition = FormStartPosition.Manual;
            win.Location = p;
            win.Show();

效果如下:

MSDN对这个属性有如下说明:

CenterParent 窗体在其父窗体中居中。
CenterScreen 窗体在当前显示窗口中居中,其尺寸在窗体大小中指定。
Manual 窗体的位置由 Location 属性确定。
WindowsDefaultBounds 窗体定位在 Windows 默认位置,其边界也由 Windows 默认决定。
WindowsDefaultLocation 窗体定位在 Windows 默认位置,其尺寸在窗体大小中指定。

回答2:

Rectangle screenRect = Screen.PrimaryScreen.WorkingArea;
//Rectangle screenRect = Screen.PrimaryScreen.Bounds;

win.Location = new Point(screenRect.Right - frm.Width, screenRect.Bottom - frm.Height);
win.StartPosition = FormStartPosition.Manual;

win.Show();