C#指定窗口显示位置

 
在启动一个程序时,我们希望窗口显示的位置处于屏幕的正中心,可以如下设置:
 MainForm mainForm = new MainForm();
 mainForm.StartPosition = FormStartPosition.CenterScreen;
 mainForm.Show();
如果在允许操作主窗口之前,必须先登录,则弹出登录窗口。此时主窗口出现在登录窗口后面,无法进行操作。
 MainForm mainForm = new MainForm();
 LoginForm dlg=new LoginForm();
 dlg.ShowDialog();
这里ShowDialog方法表示你必须先操作完dlg窗口,才能操作后面的主窗体。
如果要登录窗口显示在主窗口的中心,则在显示之前设置如下
 dlg.StartPosition = FormStartPosition.CenterParent;
 dlg.ShowDialog();
能够这样做的前提是主窗体必须先定义和显示。否则登录窗体可能无法找到父窗体。
除此之外,也可以手动设置窗口显示的位置,即窗口坐标。
首先必须把窗体的显示位置设置为手动。
dlg.StartPosition=FormStartPosition.Manual;
随后获取屏幕的分辨率,也就是显示器屏幕的大小。
 int xWidth = SystemInformation.PrimaryMonitorSize.Width;//获取显示器屏幕宽度
 int yHeight = SystemInformation.PrimaryMonitorSize.Height;//高度
然后定义窗口位置,以主窗体为例
 mainForm.Location = new Point(xWidth/2, yHeight/2);//这里需要再减去窗体本身的宽度和高度的一半
 mainForm.Show();
这样三步之后,一个准确定位在屏幕位置上的窗体就显示出来了。
用Point类时,必须先把它包含进来,在程序最前面写上:
 using System.Drawing;
通过上面的一些简单介绍,您应该明白在C#中怎样设置窗体位置了吧
 

Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1672359

### 如何设置 C# 窗体程序窗口打开时的初始位置C# 的 WinForms 应用程序中,可以通过多种方式设置窗体的初始显示位置。以下是几种常见的方法及其具体实现: #### 使用 `Location` 属性手动设置窗体位置 可以使用 `Form.Location` 属性来指定窗体左上角相对于屏幕原点(通常为屏幕左上角)的具体坐标。例如: ```csharp // 创建窗体实例并设置其位置 Form form = new Form(); form.Location = new System.Drawing.Point(100, 100); // 将窗体定位到 (100, 100) 坐标处 form.ShowDialog(); // 显示窗体 ``` 这种方法允许开发者精确控制窗体的位置[^1]。 #### 使用 `StartPosition` 属性定义起始位置模式 除了手动设置 `Location` 属性外,还可以通过调整 `Form.StartPosition` 属性来自动生成窗体的起始位置。该属性支持多个枚举值,常用的有以下几个选项: - **Manual**: 手动设定窗体位置,此时需配合 `Location` 属性一起使用。 ```csharp this.StartPosition = FormStartPosition.Manual; this.Location = new System.Drawing.Point(0, 0); ``` - **CenterParent**: 将窗体居中于父容器内。 ```csharp this.StartPosition = FormStartPosition.CenterParent; ``` - **CenterScreen**: 将窗体置于整个屏幕中央。 ```csharp this.StartPosition = FormStartPosition.CenterScreen; ``` 上述代码片段展示了如何利用不同的 `FormStartPosition` 枚举成员快速配置窗体的默认位置[^2]。 #### 启动多窗体应用时动态选择首个显示窗体 如果项目涉及多个窗体,则可能需要灵活决定哪个作为主界面呈现给用户。这可通过修改 `Program.cs` 文件中的逻辑完成,调用 `Application.Run()` 并传入目标窗体参数即可[^4]: ```csharp static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // 动态判断启动哪一个窗体 var mainForm = DecideInitialFormBasedOnCondition(); Application.Run(mainForm); } private static Form DecideInitialFormBasedOnCondition() { bool conditionMet = true; // 替换实际条件表达式 if(conditionMet){ return new MainFormA(); } else { return new MainFormB(); } } ``` 以上介绍了三种主要途径用于定制化C#Winforms应用程序里窗体初次展现时候所处的空间方位[^2].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值