2016-10-04 6 views
1

ユーザーがボタンをクリックするとメッセージボックスが表示されます。ユーザーが「はい」をクリックすると、insert関数が実行されます。タイマー付きメッセージボックスの有効化ボタン

messageboxがポップアップしたときに追加またはカウントダウンを開始すると、デフォルトのyes buttonが無効になりました。 5 secondの後にyes buttonとなると、enableになり、ユーザーがクリックする準備が整います。

messagebox

if (MessageBox.Show("log", "test", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
      {     
       insert(); 
      } 
+0

あなたがあなた自身の 'MessageBox'クラスを作成することができます。 – Hendry

+0

自分のクラスを作成したことがない@@ – chopperfield

+0

@chopperfield心配する必要はありません。プロジェクトにフォームを追加して、デザイナのプロパティで再生を開始してください。 – TheVillageIdiot

答えて

5

コメントで示唆したように、あなたは、この機能のための独自の実装を持っている必要があります。以下は、あなたはそれがダイアログボックスのように表示させるために、通常のフォームを変更する必要があります部分コードです:

  1. は、あなたのプロジェクトに新しいFormを追加します。特性タブを開きます。下記のポイントをに設定してプロパティを設定します。与えられた値に次のプロパティを変更するにはデザイナーで

  2. 修正フォーム:

    this.AcceptButton = this.btnYes;//To simulate clicking *ENTER* (Yes) 
    this.CancelButton = this.button2; //to close form on *ESCAPE* button 
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; 
    this.MaximizeBox = false; 
    this.MinimizeBox = false; 
    //FROM CODEPROJECT ARTICLE LINK 
    this.ShowInTaskBar = false; 
    this.StartPosition = CenterScreen; 
    
  3. 形成するためにタイマーを追加します。間隔を5000(5秒)に設定します。フォームのShownイベントにタイマーを起動するためにコードを書く:タイマの

    private void DialogBox_Shown(object sender, EventArgs e) 
    { 
        timer1.Start(); 
    } 
    
  4. ハンドルティッキング:

    public DialogBox() 
    { 
        InitializeComponent(); 
    
        //bind Handler to tick event. You can double click in 
        //properrties>events tab in designer 
        timer1.Tick += Timer1_Tick; 
    } 
    
    private void Timer1_Tick(object sender, EventArgs e) 
    { 
        btnYes.Enabled = true; 
        timer1.Stop(); 
    } 
    
  5. 設定はいボタンハンドラ:

    private void btnYes_Click(object sender, EventArgs e) 
    { 
        DialogResult = DialogResult.Yes; 
    } 
    
  6. あなたからこのカスタムメッセージボックスを表示している場合は、Yesまたは次のようにがクリックされた:

    var d=new DialogBox(); 
    var result=d.ShowDialog(); 
    
    if(result==DialogResult.Yes) 
    //here you go.... 
    
+1

これが答えとして受け入れられない理由はわかりません。よく説明されています。 – TheQuestioner

+0

@TheQuestionerまあ、私はそれをテストするhavent ..私はこのリンクhttp://www.codeproject.com/Articles/17253/A-Custom-Message-Boxを試してビットを微調整 – chopperfield

+0

@ TheVillageIdiot男はシンプルだった。あなたは私のアップフォートを持って、答えとして受け入れます。私はまだ私が知っておく必要があります。 – chopperfield

関連する問題