面板不显示应该是什么时候

时间:2012-05-02 16:40:11

标签: c#

因此,在我非常小的程序中,我生成一个随机百分比,并根据该百分比显示它应该显示两个面板中的一个。但是,它只会显示一个。

这是我的代码:

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; 
    }

1 个答案:

答案 0 :(得分:2)

我认为这里发生的事情是,在TrialTimer_Tick方法设置中,ITIPanel.Visible为true不会导致ITIPanel重新绘制,因此ITITimer永远不会重新启动。

您可以在ITITimer_Click方法中放置一个断点,看看是否在第一次调用后再次调用它。