#region 圆点和黄点的距离在50范围内,向圆点靠拢
public void BugbearClose(float UserXCoordinate,float UserYCoordinate)
{
BugbearGather = "";
for(int i=0; i<BugbearCoordinateAggregate.Length;i++)
{
string[] BugbearCoordinate = BugbearCoordinateAggregate[i].ToString().Split(',');
BugbearXCoordinate = Convert.ToInt32(BugbearCoordinate[0].ToString());
BugbearYCoordinate = Convert.ToInt32(BugbearCoordinate[1].ToString());

//判断圆点和黄点之间的间距小于等于50,向圆点靠拢
if(Math.Abs(UserXCoordinate - BugbearXCoordinate) <= 50 || Math.Abs(UserYCoordinate - BugbearYCoordinate) <= 50)
{
BugbearGather +=BugbearXCoordinate+","+BugbearYCoordinate+",";
}
if(BugbearGather != "")
{
BugbearGather = BugbearGather.Substring(0,BugbearGather.Length - 1);
BugbearTimer.Start();
}
}
}
#endregion
现在出现的情况是当程序运行到BugbearTimer.Start();的时候没有去调用BugbearTimer_Tick()这个事件,而又是去执行循环了,不知道要怎么控制当运行Start()的时候,让程序去调用BugbearTimer_Tick()我的意思:每循环一次,就先判断,符合要求就开始执行BugbearTimer_Tick()
我现在都不知道Start()这个方法是不是控制Tick()事件的?
请各位高手多多帮忙!

解决方案 »

  1.   

    start只是去激活timer..比如你的timer的时间间隔如果设置的是10s,那么你调用timer.Start()后,还需要等十秒钟才会去执行timer_tick事件...
      

  2.   

    但是我要怎么去控制触发Tick()事件,可以教教我吗?
      

  3.   

    Tick()事件是Timer每隔一段时间自动触发,也就是说不需要自己写循环。
    lz还在问这个问题……
      

  4.   

    不太了解楼主的目的,如果只是想当符合条件时执行一下timer_tick事件下的代码的话,那就没有必要写在timer_tick下了,直接写个方法,符合条件时直接调用不就行了?
      

  5.   

    阿丹,我写的循环不是为了画点,而是想从数祖里把点的坐标找出来,然后在Tick里进行画
      

  6.   

    因为数组里符合要求的点,是个不定量,就是说可以是1个,也可以是很多个,所以我才写了个循环1个个拿出来进行比较,当符合要求的话,就触发Tick这个事件,这样说,你们是不是可以明白
      

  7.   

    liujia_0421(SnowLover)
    你问我为什么要执行timer_tick事件下的代码,因为点是在移动的,不是固定死的,所以我必须要一个Tick事件来控制点的移动
      

  8.   

    你的逻辑我还是没搞清楚,你是想执行timer_tick事件后,让它把数组中的点先画完了,然后再执行下一次循环,还是说timer执行后,继续执行下一次循环?
      

  9.   

    虽然还是不太明白lz的思路,不过可以在BugbearTimer.Start()后面加上break跳出循环试试。
      

  10.   

    对不起,是我没表达清楚
    我把我要实现的功能大致说一下Form上有50个黄点(随机产生的,放在全局的数组里),一个白点(固定的)
    当我鼠标点一下,白点向鼠标点靠拢,在白点移动的时候,在白点100范围内的所有黄点向白点移动,所以在白点移动的时候,每移动一次,我都要去数组里循环一次,找出符合100范围的这个条件的所有黄点,因为移动要靠Tick这个方法,还有就是白点移动的速度和黄点不一样,所以我才会想到用2个Timer控件去分别控制白点和黄点移动的速度
      

  11.   

    现在用的是线程,因为在一个Timer里去控制另外一个Timer好像不行,只好改用线程了!