在splashscreen顶部的消息框

Cag*_*man 4 c#

我有一个消息框,当用户无法加载时弹出(在这种情况下,因为他没有仓库)加载时有一个启动画面,显示正在加载数据.我尝试将TopMost设置为true,但是因为spalshscreen不是父级所以它不起作用,所以我尝试将TopLevel设置为true但它没有做到这一点.

所以我试过:

MessageBox.Show(Splashscreen.LoadingScreen.ActiveForm, e.Message, "No warehouses", MessageBoxButtons.OK, MessageBoxIcon.Error);
Run Code Online (Sandbox Code Playgroud)

但这是交叉线程所以我得到一个:InvalidOperationException 那么还有另一种方法来设置消息框在顶部?

Sye*_*idi 8

试试这个它会在当前打开的每个窗口的顶部显示你的MessageBox.

MessageBox.Show(this,
        "Your text",
        "Settings Needed",
        MessageBoxButtons.YesNo,
        MessageBoxIcon.Question,
        MessageBoxDefaultButton.Button1,
        (MessageBoxOptions)0x40000); // this is MB_TOPMOST flag
Run Code Online (Sandbox Code Playgroud)

这将使消息框保持在每个窗口的顶部,因为我们将MB_TOPMOSTValue 传递给MessageBoxOptions参数.您可以访问信息以获取更多信息.