2

私の問題は非常に単純ですが、理解できないので、あなたの助けが必要です.

問題は、フォームにボタンとラベルがあることです。単にボタンをクリックして、10 から 0 までのラベルのカウントダウンを確認したいだけで、その後フォームが閉じます。簡単です。誰かがこれを手伝ってくれますか?

ところで、私の実際のアプリは、ウェブカメラからリアルタイムでビデオを表示するフォームであり、ボタンをクリックしてカウントダウンを確認し、終了すると appp は現在のフレームを画像として保存します。

アドバイスありがとう!

4

3 に答える 3

5

おそらく次の3つだけが必要なようです。

  • インスタンス変数としてのクラスのカウンター
  • タイマー (System.Windows.Forms.Timerまたは、DispatcherTimer使用している UI フレームワークによっては )
  • カウンターをデクリメントし、UI を更新し、タイマーを停止するタイマーの偶数を処理するメソッドTick+ カウンターが 0 に達した場合にスナップショットを取得する

これはすべて、他のスレッドなしで実行できます。

于 2012-07-27T06:48:16.720 に答える
2

WindowsFormsApplication を使用すると、次のように実行できます。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        timer1.Enabled = false; // Wait for start
        timer1.Interval = 1000; // Second
        i = 10; // Set CountDown Maximum
        label1.Text = "CountDown: " + i; // Show
        button1.Text = "Start";
    }

    public int i;

    private void button1_Click(object sender, EventArgs e)
    {
        // Switch Timer On/Off
        if (timer1.Enabled == true)
        { timer1.Enabled = false; button1.Text = "Start"; }
        else if (timer1.Enabled == false)
        { timer1.Enabled = true; button1.Text = "Stop"; }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (i > 0)
        {
            i = i - 1;
            label1.Text = "CountDown: " + i;
        }
        else 
        { timer1.Enabled = false; button1.Text = "Start"; }
    }
}

ラベル、ボタン、タイマーだけが必要です。

于 2012-07-27T07:07:08.527 に答える
1

このコードを使用してください。タイマー、ラベル、ボタンを 1 つ配置します。

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        timer1.Tick += new EventHandler(timer1_Tick);
    }
    private static int i = 10;
    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = "10";
        timer1.Interval = 1000;
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = (i--).ToString();
        if (i < 0)
        {
            timer1.Stop();
        }
    }
}
于 2012-07-27T07:06:10.463 に答える