设计一小程序现实从1加到100的执行过程,我用time_tick去显示输出,
可别人说那也不是实时的,需要把间隔设置得足够小(不停地刷新)才能比较精细地显示执行结果,
建议使用委托和事件来实现,
可我委托事件用的不是很多,求思路,详细点更好
下面是我的实现过程:
 
Number.cs
class Number
    {
        private int from;              //开始数
        private int to;                //结束数
        private  static int temp = 1;
        private string str;
        public  static  ArrayList list = new ArrayList(100);
       
     public Number(int i, int j)
     {
            from = i;
            to = j;
     }
     public void print(int k)
     {
         str =string .Format ("{0}+{1}={2}\n",temp ,k+1,temp +k+1);
         temp += k + 1;
         list.Add(str);
         
     }
     public void Add()
     {
         while (from <= to - 1)
         {
             print(from);
             from++;
               
          }      }
from.sc   private void btnOK_Click(object sender, EventArgs e)
        {
            Number num = new Number(int.Parse(txtNumber1.Text), int.Parse(txtNumber2.Text));
            num.Add();
            
        }        private void timer1_Tick(object sender, EventArgs e)
        {
            if ( i< Number.list.Count)
            {              
                lstBox.Items.Add(Number.list[i]);
                i++;
            }
          }

解决方案 »

  1.   

    static void Main(string[] args)
            {
                int Sum = 0;
                for (int i =0; i <= 100; i++)
                {
                    int x = Sum;
                    Sum=Sum+i;                Console.WriteLine("{0}+{1}={2}",x,i,Sum);
                    Thread.Sleep(100);
                }
                
            } 
    不知道为什么一个简单的问题到你这就成了那么复杂的计算了
      

  2.   

    你是用Winform的,那个就用个定时器就行了
      

  3.   

    与其用ArrayList来存放每次加的结果,不如直接用lstBox来存放呢。像这样:
         public void print(int k)
         {
             str =string .Format ("{0}+{1}={2}\n",temp ,k+1,temp +k+1);
             temp += k + 1;
             lstBox.Items.Add(str);
             Application.DoEvents();
         }