private void timer4_Tick(object sender, EventArgs e)
        {
            int a = 0;
            Random q = new Random();
            a += (q.Next(1));
            if (button1.Location.X==60||button4.Location.Y==80)
            {
                timer5.Enabled = true;
            }
        }        private void timer5_Tick(object sender, EventArgs e)
        {
            if (a == 0)
            {
                button1.visible = true
            }
            else
            {
                button1.Top += 20;
为什么每次这段代码都是执行else,怎么才能让他执行a=0时button1.visible=trueC#求助

解决方案 »

  1.   

    那你timer5_Tick中用到的a是哪里定义的,哪里改变其值的呢?
    从你的代码中看不出什么来。
      

  2.   

    你的代码中,timer4_Tick中的a是局部变量,在timer5_Tick中是不存在的。要想在timer5_Tick用到timer4_Tick中的a,那就把a定义为全局变量。否则你的timer5_Tick是未定义的,所以一直都是执行else
      

  3.   

     在你的 timer4_Tick和 timer5_Tick方法外定义一个变量a,这样两个地方都可以用了。比如在窗体类下添加一个字段a,那么类里面所有方法都可以使用。
        public partial class Form1 : Form
        {
            public int a;  //这个类下面的方法都可以使用
            public Form1()
            {
                InitializeComponent();
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                //可以使用a
            }        private void timer2_Tick(object sender, EventArgs e)
            {
                //可以使用a
            }
        }
      

  4.   

     在你的 timer4_Tick和 timer5_Tick方法外定义一个变量a,这样两个地方都可以用了。比如在窗体类下添加一个字段a,那么类里面所有方法都可以使用。
        public partial class Form1 : Form
        {
            public int a;  //这个类下面的方法都可以使用
            public Form1()
            {
                InitializeComponent();
            }        private void timer1_Tick(object sender, EventArgs e)
            {
                //可以使用a
            }        private void timer2_Tick(object sender, EventArgs e)
            {
                //可以使用a
            }
        }
    问题解决求给分 - -