我想在我的应用程序中实现级联布局。 我不能按照以下答案使用FormStartPosition.WindowsDefaultLocation
C# Cascading forms without mdi parent?
即使使用这种方法实现了级联,每次窗口都会出现在不同的不同位置。
我希望在固定位置显示窗口,最好从CentreScreen开始并向底部方向移动
额外信息:这是一个托盘图标应用程序,通过调用ShowDialog()以模态方式显示每个表单。
请帮助!!
谢谢&的问候,
罗希尼
答案 0 :(得分:0)
如果你要以模态Form.ShowDialog()
显示窗口,我不确定是否真的需要级联布局。只需设置StartPosition = FormStartPosition.CenterParent
就可以了。
如果您真的坚持要进行手动级联,请将Form.StartPosition
设置为FormStartPosition.Manual
。这使您可以通过Form
属性定义Form.Location
的起点。
通常情况下,您应该覆盖Form.OnLoad(EventArgs e)
,并根据Form.Owner
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (this.Owner != null)
{
this.Location = .... // offset this.Owner.Location
}
}
请注意,Form.Location
位于全局屏幕坐标中,但在使用偏移时它没有任何区别。