C#消息框-自动消失

C#消息框-自动消失,c#,C#,我有一个windows应用程序,可以将一些信息写入卡的Track1和Track2。现在我想完成的是,当用户点击按钮时,一旦用户刷卡,消息框消失,就会出现一个消息框,上面写着“等待刷卡” 我尝试使用do while循环,但是它看不到我正在调用的函数 例如: do{ readcard(); }while (messagebox.show()); 这根本不起作用。关于我如何做到这一点的任何建议 谢谢MessageBox。Show显示一个MessageBox,并等待用户关闭它 如果您想显示不等待用户的

我有一个windows应用程序,可以将一些信息写入卡的Track1和Track2。现在我想完成的是,当用户点击按钮时,一旦用户刷卡,消息框消失,就会出现一个消息框,上面写着“等待刷卡”

我尝试使用do while循环,但是它看不到我正在调用的函数

例如:

do{
readcard();
}while (messagebox.show());
这根本不起作用。关于我如何做到这一点的任何建议


谢谢

MessageBox。Show
显示一个MessageBox,并等待用户关闭它

如果您想显示不等待用户的内容,而是通过编程控制的内容,则需要自己编写。在Windows窗体中,您可以创建一个
窗体
,也许可以使用winforms designer在实例上调用
Show
来显示它,然后调用
Hide
来隐藏它

但是,windows应用程序和上一个版本中编写的任何应用程序。。。10年或20年。。。是事件驱动的,所以如果涉及到用户,就不应该使用这样的循环(使用
while

退房:

以谷歌为起点。

  • 创建一个基本的小尺寸表单。放置标签并在那里输入您的消息。将表单的startposition属性设置为居中

  • 调用表单实例

    AutomaticDisappearPopup pop = new AutomaticDisappearPopup();        
    pop.Show();
    WaitSomeTime(pop);
    
  • 为显示时间定义WaitTimes方法,然后在不中断主线程的情况下消失

    public async void WaitSomeTime(Form item)
    {
        await Task.Delay(3000);
        item.Close();
    }
    

最近,我为最顶端的messagebox创建了一个包装器,使用WinForms messagebox(也可用于WPF)一段时间后,它可能会消失

那就打电话吧

TopMostMessageBox.Show("This is TOP_MOST messagebox text", "TOP_MOST title", MessageBoxButtons.OK, MessageBoxIcon.Warning);

是的,MessageBox.show会阻止主线程,因此无论如何都不能运行其他代码来关闭它,并且在消息框打开时,必须在单独的线程上读取刷卡。
TopMostMessageBox.Show("This is TOP_MOST messagebox text", "TOP_MOST title", MessageBoxButtons.OK, MessageBoxIcon.Warning);