1

我正在尝试在 C# 中构建一个简单的计时器并最初使用此网站作为参考,但在应用程序中两次收到两行错误:

private Timer _timer;

_timer = new Timer();

最初,在我的应用程序中,我尝试...

System.Timers.Timer _timer = new Timer();

当我这样做时,C# 没有将tick、start 或stop 识别为方法。最后,我将作者的代码复制并粘贴到我的应用程序中,以查看是否可以让计时器运行然后向后工作,并且在相同的两行中收到相同的错误。我在网上阅读的大部分内容都说通过 System.Timers.Timer 路由初始化计时器,但这会导致更多错误,而且我看不到作者使用的那些方法在该路由之后可用。

更新:如果我添加using System.Windows.Forms.Timer;到文件顶部,我仍然会收到相同的错误消息。

注意:目前我的代码是作者代码的复制和粘贴,他断言它可以工作,但没有。

4

4 回答 4

3

这是创建计时器的方法。这是一个 Windows 窗体计时器。您还可以创建一个 Windows 线程计时器。

    private System.Windows.Forms.Timer tmr;

    private void timerCallBack(object sender, EventArgs e)
    {

    }

    private void createTimer()
    {
        tmr = new System.Windows.Forms.Timer(this.components);
        tmr.Interval = 1000;
        tmr.Tick += new System.EventHandler(this.timerCallBack);
    }
于 2013-10-26T12:55:44.063 回答
1

您正在定义,将System.Timers.TimerSystem.Windows.Forms.Timer更改为Timer _timer = new Timer();并添加using System.Windows.Forms.Timer;到文件顶部。

于 2013-10-26T12:57:10.650 回答
1

我曾经遇到过相同类型的错误。我的错误的原因是我的项目的名称是秒表,因此为项目创建的命名空间也被命名为秒表,编译器碰巧在我试图访问的System.Diagnostics.Stopwatch类上识别它。

因此,当我尝试创建System.Diagnostics.Stopwatch类的对象时,我收到一个错误“秒表”是一个“命名空间”,但即使我已经包含使用 System.Diagnostics ,它也像“类型”一样使用

后来我意识到编译器正在识别 Stopwatch 命名空间,这是我在System.Diagnostics.Stopwatch类上工作的项目的命名空间。

因此,请确保您没有犯此错误。

于 2014-09-22T10:09:05.267 回答
0

添加using System.Windows.Forms.Timer;将不起作用;正如生成的编译器错误消息会告诉您的那样,System.Windows.Forms.Timer它是一种类型,而不是命名空间。

您将需要添加using System.Windows.Forms;(注意,否)或将每个实例Timer明确定义为如 deathismyfriend 所建议的:TimerSystem.Windows.Forms.Timer

private System.Windows.Forms.Timer _timer = new System.Windows.Forms.Timer();

我刚刚更新了我从文章链接到 VS2010 解决方案的解决方案,所以如果您仍然遇到问题,我建议您下载、编译并运行它,然后仔细将该代码与您自己的代码进行比较。

于 2013-10-29T06:19:53.570 回答