2012-05-02 70 views
0

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

这里是我的代码:

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

出于兴趣,如果'rand'为.505(ish),你会发生什么? –

+1

添加到乔恩,你为什么要使用计时器?你为什么要定义一个布尔值为true,然后检查它是否为真? – SimpleVar

+2

为了好玩,请添加一个您使用rand值设置的文本字段,并查看您获得的内容。 –

回答

2

我觉得这里发生的一切是在TrialTimer_Tick方法ITIPanel.Visible设置为true不会导致ITIPanel重绘,因此ITITimer不会重新启动。

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

相关问题