我想在我的应用程序中实现级联布局。 我不能按照以下答案使用 FormStartPosition.WindowsDefaultLocation
C# Cascading forms without mdi parent?
尽管使用这种方法实现了级联,但每次窗口都出现在不同的不同位置。
我想在固定位置显示窗口,最好从 CentreScreen 开始,然后朝底部方向移动
额外信息:这是一个托盘图标应用程序,每个表单都通过调用 ShowDialog() 以模态方式显示。
请帮忙!!
感谢和问候,
罗希尼
最佳答案
如果您要以模态方式显示窗口 Form.ShowDialog()
我不确定级联布局是否真的有必要。只需设置 StartPosition = FormStartPosition.CenterParent
即可。
如果您真的坚持要进行手动级联,请将 Form.StartPosition
设置为 FormStartPosition.Manual
。这使您能够通过 Form.Location
属性定义 Form
的起点。
通常,您应该覆盖 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
位于全局屏幕坐标中,但在您使用偏移量时它不会产生任何影响。
关于c# - 在非 MDI C++/CLI 应用程序中级联窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377870/