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