0

したがって、私の非常に小さなプログラムでは、ランダムなパーセンテージを生成し、そのパーセンテージに基づいて、2つのパネルのうちの1つを表示する必要があります。ただし、表示されているのは1つだけです。

これが私のコードです:

Random random = new Random();
    private void button1_Click(object sender, EventArgs e)
    {
        bool button1Clicked = true;
        if (button1Clicked == true) { ITIpanel.Visible = true; }
    }

    private void ITIpanel_Paint(object sender, PaintEventArgs e)
    {
        ITItimer.Enabled = true; 
    }

    private void ITItimer_Tick(object sender, EventArgs e)
    {

      double rand = random.NextDouble();
      if (rand <= .50) { bluestimPanel.Visible = true; }
      if (rand >= .50) {  redstimPanel.Visible = true; }

      ITItimer.Enabled = false; 
    }

    private void bluestimPanel_Paint(object sender, PaintEventArgs e)
    {
       Trialtimer.Enabled = true; 
    }

    private void redstimPanel_Paint(object sender, PaintEventArgs e)
    {
        Trialtimer.Enabled = true;
    }

    private void Trialtimer_Tick(object sender, EventArgs e)
    {
        bluestimPanel.Visible = false;
        redstimPanel.Visible = false;
        Trialtimer.Enabled = false;
        ITIpanel.Visible = true; 
    }
4

1 に答える 1

2

ここで起こっていることは、TrialTimer_Tick メソッドで ITIPanel.Visible を true に設定しても、ITIPanel が再描画されないため、ITITimer が再起動しないことだと思います。

ITITimer_Click メソッドにブレークポイントを設定して、最初の呼び出し後に再び呼び出されるかどうかを確認できます。

于 2012-05-02T18:33:41.893 に答える