0

ボタンを押した回数をカウントするアプリを作っていますが、今のところコーディングのパフォーマンスが非常に悪く、5回タップしたらすぐにボタンを無効にしたいのですが、今のところ機能していません、それで、可能であれば改善するために手を差し伸べてもらえないかと考えていました。

ここにコードがあります

public partial class MainPage : PhoneApplicationPage
{

    private int count = 10;
    private int tap = 0;

    DispatcherTimer timerCountDown = new DispatcherTimer();
    public MainPage()
    {
        InitializeComponent();
        timerCountDown.Interval = new TimeSpan(0, 0, 1);
        timerCountDown.Tick += new EventHandler(timerCountDown_Tick);
        timerCountDown.Start();

    }

    //buttom counts
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        counter();
    }


    //timer
    void timerCountDown_Tick(object sender, EventArgs e)
    {
        timer();
        level();

    }


    //time remaning
    private void timer() 
    {

        txtTimerCount.Text =  "Left " + count.ToString();
        if (count > 0)
            count--;
        else
        txtTimerCount.Text = "Times Up";

        if (txtTimerCount.Text == "Times Up")
        btntap.IsEnabled = false;
    }

    //counts clicks
    private void counter() 
    {
        tap++;
        txtTimerTap.Text = "Tap Count: " + tap.ToString();

    }


    //level1
    private void level()
    {
        if (tap == 5)
            txtcomplet.Text = "Well done level completed";

        if
          (tap == 5)
            btntap.IsEnabled = false;

    }
4

1 に答える 1

1

tick イベント ハンドラーの代わりに、levelメソッドからメソッドを呼び出します。counter

//timer
void timerCountDown_Tick(object sender, EventArgs e)
{
    timer();
}

//counts clicks
private void counter() 
{
    tap++;
    txtTimerTap.Text = "Tap Count: " + tap.ToString();
    level();
}

編集:

このlevelメソッドでは、コード ブロックを使用して二重ifステートメントを回避できます。

private void level()
{
    if (tap == 5) {
        txtcomplet.Text = "Well done level completed";
        btntap.IsEnabled = false;
    }
}
于 2013-09-21T22:44:00.350 に答える