• <winform>用StreamWriter实现恢复上次关闭时的状态


          在我上次编写的软件中,很简单实现了再次开始时,能显示上次关闭时的状态,只要就是用数据流将关闭时的状态写入文本中,在再次启动时将信息恢复。其中代码如下:

     public void btnClose_Click(object sender, EventArgs e)
    
            {
    
                state = textBox2.Text;
    
                bn[0] = btnClose.Enabled;
    
                bn[1] = btnStart.Enabled;
    
                bn[2] = btnStop.Enabled;
    
                bn[3] = btnReset.Enabled;
    
                bn[4] = timer1.Enabled;
    
    
                StreamWriter sw = new StreamWriter("d://a.text"); 
    
                sw.WriteLine(counter);
    
                sw.WriteLine(state);
    
                for (int i = 0; i < 5; i++)
    
                {
    
                    sw.WriteLine(bn[i]);
    
                }
    
                sw.Close();                          //Keep records
    
    
                StreamWriter aw = new StreamWriter("d://c.text");
    
                aw.WriteLine("0");
    
                aw.Close();                        //Send close information
    
    
    
                Close();
    
            }

    再次启动时,先是判断上次关闭是否有文件留下,接着若是有就将信息写入状态中,如果没有当然就不,代码如下:

     if (!File.Exists(@"d://a.text"))
    
                {
    
                    btnClose.Enabled = bn[0];
    
                    btnStart.Enabled = bn[1];
    
                    btnStop.Enabled = bn[2];
    
                    btnReset.Enabled = bn[3];
    
                    timer1.Enabled = bn[4];      //Initial value
    
                }
    
                else
    
                {
    
                    StreamReader sr = new StreamReader("d://a.text");
    
                    counter  = Convert.ToInt32(sr.ReadLine());
    
                    textBox2.Text = sr.ReadLine();
    
                    btnClose.Enabled = Convert.ToBoolean(sr.ReadLine());
    
                    btnStart.Enabled = Convert.ToBoolean(sr.ReadLine());
    
                    btnStop.Enabled = Convert.ToBoolean(sr.ReadLine());
    
                    btnReset.Enabled = Convert.ToBoolean(sr.ReadLine());
    
                    timer1.Enabled = Convert.ToBoolean(sr.ReadLine());
    
                    sr.Close();
    
                    textBox1.Text = Convert.ToString(counter);   //Historical value
    
    
    
    
                }
  • 相关阅读:
    Address already in use: JVM_Bind:80 异常的解决办法
    Spring(转载二)
    Spring(转载一)
    mybatis(二)
    mybatis(一)
    存储过程(二)
    存储过程(一)
    web过滤器
    请求转发和请求重定向
    JavaWeb(二)
  • 原文地址:https://www.cnblogs.com/virgil/p/2715573.html
Copyright © 2020-2023  润新知