c# - 在非 MDI C++/CLI 应用程序中级联窗口

标签 c# c++ modal-dialog

我想在我的应用程序中实现级联布局。 我不能按照以下答案使用 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/

相关文章:

c# - 点击事件查询

c# - 如何使用数组镜像图像

c++ - 什么是 "Argument-Dependent Lookup"(又名 ADL,或 "Koenig Lookup")?

c++ - 从内存而不是 URL 动态加载 QML

jquery - 在 Jaws 中读取模态消息的辅助功能

C# 从 byte[] 转换为 struct。字节顺序错误

c# - GUIText 已弃用,那么我应该使用什么来代替它呢?

C++ 获取处理器 ID

javascript - Jquery 每个等待模态关闭

javascript - Angular Strap - 模态 Html 转换不起作用