顶部的 C# 消息框,直到操作完成

C# Message box on top until action done

如何打开 MessageBox ,在任务完成之前保持打开状态,然后关闭它。

我打算在里面插入一个加载动画。

我需要以某种方式让你无法通过单击它来关闭它,只是通过代码。

var t = Task.Run(() =>
{
    MessageBox.Show("Loading!");

    CycleValue = 0;
    while (CycleValue < noOfCycles && buttonStartStop.Text == "Stop")
    {
        this.Invoke((MethodInvoker)delegate
        {
            gm.NextState();
            CycleValue++;
            if (CycleValue == noOfCycles)
            {
                buttonStartStop.Text = "Start";
                buttonRandomise.Enabled = true;
                buttonReset.Enabled = true;
            }
        });
    }
});

如果你想在 UI 上执行操作时显示忙碌光标,你可以使用 -

 Cursor.Current = Cursors.WaitCursor;

如果要显示动画请参考this

您需要创建自己的 form/window 来模仿消息框的外观,但您可以对其进行更多控制(例如,在任务完成后实施关闭事件)。一个标签和几个按钮应该不会花太长时间,在以后的项目中会有用!