我正在启动一个winform应用程序[.NET 3.5,C#],其中应用程序的主要形式从特定的指定位置开始。我在这个
的构造函数中调用以下代码 private void SetFormPosition()
{
this.StartPosition = FormStartPosition.Manual;
this.Left = Screen.PrimaryScreen.WorkingArea.Right - this.Width;
this.Top = Screen.PrimaryScreen.WorkingArea.Bottom - this.Height;
}
应用程序启动后,我希望在整个应用程序生命周期内保持表单的位置。
也许,我可以“点击”位置事件已更改但不确定这是否会非常优雅。
请建议。
感谢。
答案 0 :(得分:2)
我同意其他人的意见,你可能不应该这样做,但如果你必须这样做,请继续阅读。
您可以覆盖SetBoundsCore方法并阻止任何移动。我们使用它来防止在某些UserControl实现(例如包含ComboBox或其他固定高度控件的实现)上进行垂直调整大小,但它也负责更改位置。
以下内容可以帮助您入门:
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
x = this.Location.X;
y = this.Location.Y;
//...etc...
base.SetBoundsCore(x, y, width, height, specified);
}
答案 1 :(得分:2)
您可以将FormBorderStyle设置为None。这有一个额外的好处,就是删除窗口顶部的条形图,这会让用户误以为它们应该可以移动窗口。
答案 2 :(得分:0)
只需更改此
Location = new Point(this.Width,this.Height);