我想在C#2005中开发的winform程序中手动触发ontimer事件,但是不知道要传递的参数是什么,所以总提示错误,请诸位大虾帮帮忙!现在写的调用代码如下,有错误......
System.Timers.ElapsedEventArgs e =new System.Timers.ElapsedEventArgs();
 
this.OnTimer(this,e);
......请问正确的调用方法应该如何?

解决方案 »

  1.   

    this.timer1.start()或this.timer1.enable=true;这样不就自己调用了ontimer方法。
    试试应该可以的。
      

  2.   

    public class ElapsedEventArgs : EventArgs
    {
        // Fields
        private DateTime signalTime;    // Methods
        internal ElapsedEventArgs(int low, int high);    // Properties
        public DateTime SignalTime { get; }
    }
      

  3.   

    简单一句话:timer1.Start();即可触发ontimer方法。
      

  4.   

    time1.Start();或者time1.Enabled=true;
    关闭的时候直接
    time1.Stop();或者time1.Enabled=false;
      

  5.   

    不好意思诸位,可能是我讲得不清楚,我的timer控件本身是启用的,你们提供的方法只不过是让timer控件开始工作,但是它必须经过一个轮询周期后才能触发ontimer事件。恰恰轮询周期是30分钟。我希望程序运行后立刻执行一次ontimer函数,然后再进入轮询周期所以需要手动调用ontimer函数,但不知传什么具体参数?我是新手还没有积分,谢谢诸位帮忙
      

  6.   

    那你先可以在运行的时候把轮询周期设为很小,
    调用完一次ontimer函数以后,在把轮询周期设为原来的。
    这样应该可以的。
      

  7.   

    freshman45的办法是个解决方法,但不是我想要的,不过还是谢谢你。我提的那个问题是能实现的,请知道的高手提醒一下,谢了另外请问在哪能了解信誉积分和问题点数的详情,作用。最好给个链接,再谢~~
      

  8.   

    CSDN上难道没有高手知道吗??还是不愿意回答??
      

  9.   

    CSharp_ShangHai的看法虽然能实现但实在是够多此一举的,我只是想简单的确定要传的参数按钮点击的事件都能确定可传的参数,ontimer事件当然能够手动调用了
      

  10.   

    noway8881(老虎不发威,你当我是Hello Kitty)  请问int low 和int high应该是什么呢?形参的意义是什么呢?
      

  11.   

    在“csdn论坛”中的“我的技术社区”中的“我的信誉分变化”。
      

  12.   

    this.OnTimer(this,e);第2个this应该换成timer控件,当然你这样写也不会出什么语法错误。
    把e声明成 EventArgs,表声明成派生类
    这样就应该没有错误了
      

  13.   

    phommy(石头,竹子,诗) 能否说的详细一些或者给出具体代码?我在这方面是新手不太理解你说的。之前我已经试过声明成EventArgs类型,但是编译错误,不能隐式转换为System.Timers.ElapsedEventArgs
      

  14.   

    呃 我上面说的有问题。如果不需要 e.SignalTime的话,你直接这样得了 this.OnTimer(null, null);
    很方便。
    如果需要就很不幸了,ElapsedEventHandler根本没有构造函数,你的需求是无法做到的。其实很奇怪你为什么不用 System.Windows.Forms.Timer而一定要用System.Timers.Timer。我看到这个帖子才知道有这么个东西呢
      

  15.   

    to phommy(石头,竹子,诗) .net是有三个timer控件的,出了一个控制线程定时运行的,其他两个一个是System.Timers.Timer,一个是System.Windows.Forms.Timer
    前者比后者精确,这个程序我从同事手里接过来的,timer控件已经加入了,以为使用上没啥区别呢,所以就没改。
    另外如果是System.Windows.Forms.Timer我的想法就能够实现了吗?如何做?
      

  16.   

    System.Windows.Forms.Timer.Tick 接受的是普通的EventArgs参数,是可以自行实例化的...不管用什么,你都可以用两个OnTimer(null, null)来调用~
    或者你把OnTimer的全部内容进行重构->提取方法,直接调用提取出来的方法也一样...
      

  17.   

    OK,基本上明白了,phommy(石头,竹子,诗) 谢谢你的详细解答,也谢谢其他人的帮助。本帖给分结贴了。