2011-10-19 88 views
0

我有一个windows应用程序,它将一些信息写入卡的Track1和Track2。现在我想完成的是,当用户点击按钮时,一旦用户刷卡消息框消失,消息框就会出现“等待滑动”。C#消息框 - 自动消失

我试图用do while循环但它不会看到我的功能我打电话

例如:

do{ 
readcard(); 
}while (messagebox.show()); 

这并不能在所有的工作。有关我如何完成此任务的任何建议。

由于

回答

1

MessageBox.Show示出了一个消息并等待用户将其关闭。

如果你想显示一些不等待用户的东西,但是通过程序控制,你需要自己写。在Windows窗体,你会创建一个Form,或许与WinForms的设计师,呼叫Show上的一个实例,以显示它,然后Hide事后隐藏

然而,Windows应用程序和写在最后的任何应用程序。 .. 10年或20年......是事件驱动所以你如果用户参与你不应该使用这样的循环(与while)。

退房: http://en.wikipedia.org/wiki/Event-driven_programming http://dotnetfirez.blogspot.com/2010/05/winforms.html https://softwareengineering.stackexchange.com/questions/99842/vs2010-winform-designer-to-learn-or-bottom-up-approach

和谷歌的一个起点。

+0

是的,MessageBox.show阻止主线程,所以没有其他代码可以运行关闭它,阅读刷卡必须在分离e线程,同时消息框打开。 – Will03uk

0
  • 创建一个基本的小尺寸表单。将一个标签并输入信息there.Make形式的指定startPosition属性为中心

  • 呼叫的形式实例

    AutomaticDisappearPopup pop = new AutomaticDisappearPopup();   
    pop.Show(); 
    WaitSomeTime(pop); 
    
  • 定义waitSomeTime方法用于显示时间,然后消失在不中断主线程

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