日期:2014-05-20  浏览次数:20701 次

关于System.Windows.Forms.Timer组件问题,比较复杂请高手指教
dataGridView1.DataSource   =   MumeralTVSqlCmd.ViewDispatch();
                        System.Windows.Forms.Timer   timer   =   new   System.Windows.Forms.Timer();
                        timer.Enabled   =   true;
                        timer.Interval   =   10000;
timer.Tick   +=   new   EventHandler(timer_Tick);

    void   timer_Tick(object   sender,   EventArgs   e)
                {
                        MessageBox.Show( "D ");
                        //执行的时候会弹出2个show,用一个int   变量执行++的话   只加一次
                        但是我现在比较两个   DataTable   实现报警也会出现两次   具体代码如下  
                }


另外的疑问:主要是变量   i,它的值在if里面居然不变了,会固定死,j,反而会正常变化.(i   是在判定里面不变化,在   i   =   MumeralTVSqlCmd.ViewDispatch().Rows.Count;数字是正常)     请高手指教啊   我都要哭了
  int   i,   j;
                void   timer_Tick(object   sender,   EventArgs   e)
                {
                        i   =   dataGridView1.RowCount;
                        j   =   MumeralTVSqlCmd.ViewDispatch().Rows.Count;
                        toolStripButton1.Text   =   i.ToString();
                        toolStripButton2.Text   =   j.ToString();
                        if   (i   -   1   <   j)//比较是否有新数据
                        {
                                notifyIcon1.Visible   =   true;
                                notifyIcon1.ShowBalloonTip(1000,   i.ToString()   +   "       "   +   j.ToString(),   "dd ",   ToolTipIcon.Info);
                        }
                }

------解决方案--------------------
修改timer的tick事件如下
void timer_Tick(object sender, EventArgs e)
{
timer.Enabled = false;//Disable timer
MessageBox.Show( "D ");
timer.Enabled = true;//Enable timer
}
------解决方案--------------------
久违的愚翁又出现了
------解决方案--------------------
直接MessageBox.Show( "D ");

也不会出现弹出两次的问题...

继点调试一下先..
------解决方案--------------------