如何在上次关闭位置启动程序窗体 如何在上次关闭位置启动程序窗体!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在settings.setting文件中加入:WindowGeometry string User WindowGeometryOpen string User WindowGeometrySearch string User相关代码:public MainForm(){ GeometryFromString(Properties.Settings.Default.WindowGeometry, this);}private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { // persist our geometry string. Properties.Settings.Default.WindowGeometry = GeometryToString(this); Properties.Settings.Default.Save(); }#region 保存窗体位置、大小 public void GeometryFromString(string thisWindowGeometry, Form formIn) { if (string.IsNullOrEmpty(thisWindowGeometry) == true) { return; } string[] numbers = thisWindowGeometry.Split('|'); string windowString = numbers[4]; if (windowString == "Normal") { Point windowPoint = new Point(int.Parse(numbers[0]), int.Parse(numbers[1])); Size windowSize = new Size(int.Parse(numbers[2]), int.Parse(numbers[3])); bool locOkay = GeometryIsBizarreLocation(windowPoint, windowSize); bool sizeOkay = GeometryIsBizarreSize(windowSize); if (locOkay == true && sizeOkay == true) { formIn.Location = windowPoint; formIn.Size = windowSize; formIn.StartPosition = FormStartPosition.Manual; formIn.WindowState = FormWindowState.Normal; } else if (sizeOkay == true) { formIn.Size = windowSize; } } else if (windowString == "Maximized") { formIn.Location = new Point(100, 100); formIn.StartPosition = FormStartPosition.Manual; formIn.WindowState = FormWindowState.Maximized; } } private bool GeometryIsBizarreLocation(Point loc, Size size) { bool locOkay; if (loc.X < 0 || loc.Y < 0) { locOkay = false; } else if (loc.X + size.Width > Screen.PrimaryScreen.WorkingArea.Width) { locOkay = false; } else if (loc.Y + size.Height > Screen.PrimaryScreen.WorkingArea.Height) { locOkay = false; } else { locOkay = true; } return locOkay; } private static bool GeometryIsBizarreSize(Size size) { return (size.Height <= Screen.PrimaryScreen.WorkingArea.Height && size.Width <= Screen.PrimaryScreen.WorkingArea.Width); } public string GeometryToString(Form mainForm) { return mainForm.Location.X.ToString() + "|" + mainForm.Location.Y.ToString() + "|" + mainForm.Size.Width.ToString() + "|" + mainForm.Size.Height.ToString() + "|" + mainForm.WindowState.ToString(); } #endregion C#中使用Setting保存用户自定义窗体位置及大小很早在codeproject上看到的! 设置Application属性的Location然后在关闭函数里面写Properties.Settings.Default.Save(); 新手,一个GPS.DLL 的类我怎么调用? 如何实现子窗体执行时父窗体进度条显示进度 怎么来编程?用那种语言好实现 C# 变量定义问题 文件的隐藏!!! GridView怎么添加数据? 数据库编程的基础问题 如何在代码中把一个控件放到另一个控件的后面或下面(C#) 关于重载运算符的小问题! 请问能不能不用Enable属性,让控件不接受鼠标和键盘活动的,用Enable变灰太难看了,谢谢! 发布后站点在客户端DropDownList没有生成onchange事件,但只是个别机器没有生成 求一个算法?请多帮忙。。
WindowGeometry string User
WindowGeometryOpen string User
WindowGeometrySearch string User相关代码:
public MainForm()
{
GeometryFromString(Properties.Settings.Default.WindowGeometry, this);
}private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// persist our geometry string.
Properties.Settings.Default.WindowGeometry = GeometryToString(this);
Properties.Settings.Default.Save(); }#region 保存窗体位置、大小
public void GeometryFromString(string thisWindowGeometry, Form formIn)
{
if (string.IsNullOrEmpty(thisWindowGeometry) == true)
{
return;
}
string[] numbers = thisWindowGeometry.Split('|');
string windowString = numbers[4];
if (windowString == "Normal")
{
Point windowPoint = new Point(int.Parse(numbers[0]),
int.Parse(numbers[1]));
Size windowSize = new Size(int.Parse(numbers[2]),
int.Parse(numbers[3])); bool locOkay = GeometryIsBizarreLocation(windowPoint, windowSize);
bool sizeOkay = GeometryIsBizarreSize(windowSize); if (locOkay == true && sizeOkay == true)
{
formIn.Location = windowPoint;
formIn.Size = windowSize;
formIn.StartPosition = FormStartPosition.Manual;
formIn.WindowState = FormWindowState.Normal;
}
else if (sizeOkay == true)
{
formIn.Size = windowSize;
}
}
else if (windowString == "Maximized")
{
formIn.Location = new Point(100, 100);
formIn.StartPosition = FormStartPosition.Manual;
formIn.WindowState = FormWindowState.Maximized;
}
}
private bool GeometryIsBizarreLocation(Point loc, Size size)
{
bool locOkay;
if (loc.X < 0 || loc.Y < 0)
{
locOkay = false;
}
else if (loc.X + size.Width > Screen.PrimaryScreen.WorkingArea.Width)
{
locOkay = false;
}
else if (loc.Y + size.Height > Screen.PrimaryScreen.WorkingArea.Height)
{
locOkay = false;
}
else
{
locOkay = true;
}
return locOkay;
} private static bool GeometryIsBizarreSize(Size size)
{
return (size.Height <= Screen.PrimaryScreen.WorkingArea.Height &&
size.Width <= Screen.PrimaryScreen.WorkingArea.Width);
} public string GeometryToString(Form mainForm)
{
return mainForm.Location.X.ToString() + "|" +
mainForm.Location.Y.ToString() + "|" +
mainForm.Size.Width.ToString() + "|" +
mainForm.Size.Height.ToString() + "|" +
mainForm.WindowState.ToString();
} #endregion
很早在codeproject上看到的!
然后在关闭函数里面写Properties.Settings.Default.Save();