c# - 在双屏设置上显示 Winforms

标签 c# winforms

我有一个 C# 语言的 winforms 应用程序,有大约 10 个表单可供导航。

在所有这些设备上,我都将 StartPosition 设置为 CenterScreen,但我使用的是插入了第二个屏幕的笔记本电脑。

现在应用程序在我的一个屏幕上随机启动。此外,即使应用程序位于一个屏幕上,消息框也会在第二个屏幕上弹出。如何将应用程序设置为始终在主屏幕启动,在 Windows 中设置为“1”。

我还想将应用程序绑定(bind)到它所显示的屏幕,以便 MessageBox 会出现在与应用程序相同的屏幕上。我想要的另一件事是,新表单将显示在与以前的表单相同的位置,而不是返回到应用程序启动的屏幕。

我应该用什么来控制表单的位置?

我尝试将 StartPosition 更改为 CenterParent,但这似乎没有改变任何内容。

最佳答案

起始页(第一种形式)上尝试一下:

private void MyForm_Load(object sender, EventArgs e)
{
        this.Location = Screen.AllScreens[0].WorkingArea.Location;
        this.StartPosition = FormStartPosition.CenterScreen;
}

更多信息请点击:Showing a Windows form on a secondary monitor?

这个问题是关于在辅助屏幕上显示程序的。如果您使用了该答案,只需将数组上的 1 索引 更改为 0 即可。

编辑:

只是为了强调Bryce Wagner其他人阅读此问题的评论:

If you're calling it from a form or user control, you'll want to call MessageBox.Show(this, "Message") instead.

关于c# - 在双屏设置上显示 Winforms,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57288060/

相关文章:

c# - 克隆控件 - C# (Winform)

c# - 我怎样才能在 C# 中获得今天的犹太日期?

c# - 如何使用 C# 为 ListView 控件中的项目添加边框?

c# - 如何比较可空类型?

c# - 对象到 GUID/UUID

c# - 是否可以在没有基类或接口(interface)的情况下创建动态代理?

winforms - 路径递归是否应该发生在类或表示层中?

javascript - 使用 jQuery 确定是否在不知道 Id 的情况下检查 ASP.NET 单选按钮

c# - (c++/cli) C++ 使用 C# dll 获取任何枚举成员名称

c# - 使用 SetParent() 时问题定位窗口