您的位置:首页 > 编程语言 > C#

c# 设置窗体位置

2017-08-15 10:45 260 查看

1.控制窗体加载时的位置

第一次运行Windows窗体时,窗体一般都有一个默认的显示位置,一般由属性StartPosition指定。



常用属性

(1)CenterParent:窗体在其父窗体中居中

(2)CenterScreen :窗体在当前显示窗体·中居中,尺寸在窗体大小中指定

(3)Manual:窗体的位置由Location属性确定

(4)WindowsDefaultBounds:窗体定位在Windows默认位置,边界也由Windows默认决定

(5)WindowsDefaultLocation:窗体定位在Windows默认位置,尺寸在窗体大小中指定

2.设置窗体在屏幕中的位置

通过Left和Top属性可以准确地设置窗体的位置

private void Form1_Load(object sender, EventArgs e)
{
this.Left = 500;
this.Top = 500;
}

3.从上次关闭位置启动窗体

次功能主要是通过在注册表中读写窗体的Location属性来实现的。在窗体关闭前处理窗体的FormClosed事件,将窗体的Location属性值写入注册表,然后在窗体的Load事件中从注册表中读取保存的数据。

知识点

(1)Location属性

Point结果,表示窗体的左上角相对桌面的 左上角的坐标。

(2)读写注册表

c#中对注册表进行读写,主要是通过RegistryKey类的GetValue和SetValue方法来实现的。

代码

/// <summary>
/// 窗体加载时获取窗体上次结束时的位置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
RegistryKey myReg1, myReg2;                //声明注册表对象
myReg1 = Registry.CurrentUser;             //获取当前用户注册表项
try
{
myReg2 = myReg1.CreateSubKey("Software\\MySoft");               //在注册表项中创建子项
this.Location = new Point(Convert.ToInt16(myReg2.GetValue("1")), Convert.ToInt16(myReg2.GetValue("2")));    //设置窗体的显示位置
}
catch
{

}
}
/// <summary>
/// 窗体关闭前记录窗体的当前位置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
RegistryKey myReg1, myReg2;                //声明注册表对象
myReg1 = Registry.CurrentUser;             //获取当前用户注册表项
myReg2 = myReg1.CreateSubKey("Software\\MySoft");   //在注册表项中创建子项
try
{
myReg2.SetValue("1", this.Location.X.ToString());
myReg2.SetValue("2", this.Location.Y.ToString());
}
catch
{

}
}

4.让窗体始终在桌面最顶层显示

Windows桌面上允许运行多个窗体同时显示,但是只有一个窗体能够得到焦点。其他窗体会被得到焦点的窗体遮挡,下面我们来看看如何使窗体始终显示在最顶层。

方法:

将窗体的TopMost属性设置为true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: