2011-10-19 17 views
0

カードのTrack1とTrack2に情報を書き込むWindowsアプリケーションがあります。今私が達成したいのは、ユーザーがボタンをクリックすると、メッセージボックスが消えるようにカードをスワイプすると、メッセージが「Waiting For Swipe」と表示されるということです。C#メッセージボックス - 自動的に消える

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

これはまったく機能しませんでした:

は、しかし私はそれが私が例えば

を呼び出しています、私の機能は表示されませんdo-while文を使用しようとしました。どのように私はこれを達成することができるかに関する任意の提案。

おかげ

答えて

1

MessageBox.Showは、メッセージボックスを表示し、ユーザがそれを却下するのを待ちます。

ユーザーを待たずにプログラムで制御されているものを表示したい場合は、自分で書き込む必要があります。 Windowsフォームでは、あなたはおそらく、リサイズデザイナーで、その後

しかし、Windowsアプリケーションと最後に書かれたすべてのアプリケーションを、それを隠すためにHideそして、それを表示するには、インスタンス上でShowを呼び出し、Formを作成すると思います。 .. 10年または20年... イベント駆動のです。ユーザーが関わっている場合は、そのようなループを使用しないでください(while)。

チェックアウト: https://softwareengineering.stackexchange.com/questions/99842/vs2010-winform-designer-to-learn-or-bottom-up-approach

とGoogleの出発点のため http://en.wikipedia.org/wiki/Event-driven_programming http://dotnetfirez.blogspot.com/2010/05/winforms.html

+0

うん、メッセージボックスが開いている間はスレッドになります。 – Will03uk

0
  • 基本的な小さなサイズのフォームを作成します。ラベルを入れて、あなたのメッセージを入力してください

  • AutomaticDisappearPopup pop = new AutomaticDisappearPopup();   
    pop.Show(); 
    WaitSomeTime(pop); 
    
  • は、表示時間のためのwaitSomeTimeメソッドを定義して、メインスレッド

    を中断することなく消えフォームインスタンスをコールセンターために、フォームの開始位置プロパティをthere.Makeブロックメインスレッドがありませんので、他のコードは、とにかくそれを閉じるために走っていないとスワイプを読んでできることはseparatでなければならないでしょうMessageBox.show
    public async void WaitSomeTime(Form item) 
    { 
        await Task.Delay(3000); 
        item.Close(); 
    } 
    
関連する問題