protected override void OnVisibleChanged(EventArgs e)
{
    base.OnVisibleChanged(e);
               if (true)
            {
                Form2 f1 = new Form2();
                f1.Show();
                this.Hide();
            }
顺便解释下上面那个重载的方法意思?
用这个方法..窗体2会弹出4次...
如何解决。.谢谢。..

解决方案 »

  1.   

    放到Form1_Load事件中Form2 f1 = new Form2(); 
    f1.Show(); 
    this.Hide(); 
      

  2.   

    对,
    如2楼掌柜一样
    放到Form1_Load中去做,
    form2 f=new form2();
    this.hide();
    f.show();
      

  3.   

    在LOAD中有用我就不问了。......高手快来....
      

  4.   

    protected override void OnVisibleChanged(EventArgs e)
    {
        base.OnVisibleChanged(e);
                  if (true)
                {
                    Form2 f1 = new Form2();
                    f1.Show();
                    this.Hide();  //这里又触发了一次OnVisibleChanged事件
                } 所以,最好在f1.Show之前做判断,如果没有Show才Show
    另外,为什么Load会没有效果呢
      

  5.   

    对了。..我做随即数.int rdCard;
                Random r = new Random();
                ArrayList Aleng = new ArrayList();
                for (int i = 0; i < 5 * 5; i++)
                {
                    Aleng.Add(i / 2 + 1);
                }
                for (int m = 0; m < 5; m++)
                  {
                    for (int n = 0; n < 5; n++)
                    {
                        rdCard = r.Next(0, Aleng.Count - 1);
                        listBox1.Items.Add(Aleng[rdCard]);
                        Aleng.RemoveAt(rdCard);
                    }
                 }|随即出来的数字有些会相临的。..有没有好的随即方法??
      

  6.   

                Random r = new Random();
                ArrayList Aleng = new ArrayList();
                for (int i = 0; i < 5 * 5; i++)
                {
                    Aleng.Add(i / 2 + 1);
                }
                for (int m = 0; m < 5; m++)
                {
                    for (int n = 0; n < 5; n++)
                    {
                        rdCard = r.Next(0, Aleng.Count - 1);
                        System.Threading.Thread(10);
                        listBox1.Items.Add(Aleng[rdCard]);
                        Aleng.RemoveAt(rdCard);
                    }
                }