Code Bye

问一下高手timer_ticker的运行机制是什么

各位高手,
下面的程序能让窗口状态栏实时显示鼠标屏幕坐标。
假如本人把timer1.Enabled = true;屏蔽掉,就不实时显示了。
这是正常的。
虽然屏蔽掉后,不实时显示,但是还显示了一个固定的屏幕坐标。
也就是说,下面这个程序把timer1.Enabled = true;屏蔽掉,但timer_ticker还是运行了一次。
(不然状态栏不会出现“屏幕鼠标坐标:X”字眼)
本人的问题是:timer_ticker是相似do-while的循环,而不是while循环吗?假如timer1.Enabled = true;之前,一次也不想运行,应该怎么做?
private void btnRun_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
Point ms = Control.MousePosition;
this.toolStripStatusLabel2.Text = string.Format(“屏幕鼠标坐标:X: {0}: Y: {1}”, ms.X, ms.Y);
MouseButtons mb = Control.MouseButtons;
}
解决方案

40

搞个窗体测试了下,  明显LZ你代码有问题了.
//定义一个计时器
private System.Timers.Timer timer ;
public Form1()
{
InitializeComponent();
初始化
timer = new System.Timers.Timer(50);
timer.Stop();
timer.Elapsed += Timer_Elapsed;
Control.CheckForIllegalCrossThreadCalls = false;
}
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
Point ms = Control.MousePosition;
this.label1.Text = string.Format(“屏幕鼠标坐标:X: {0}: Y: {1}”, ms.X, ms.Y);
MouseButtons mb = Control.MouseButtons;
}
private void button1_Click(object sender, EventArgs e)
{
//只有你点了开始, 才会有坐标了
timer.Start();
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明问一下高手timer_ticker的运行机制是什么