制作一个按钮,在程序下次运行时保存列表

Posted

技术标签:

【中文标题】制作一个按钮,在程序下次运行时保存列表【英文标题】:Making a button that saves lists for the next time the program is run 【发布时间】:2013-02-28 13:22:44 【问题描述】:

我正在制作一个 Windows 窗体应用程序。它是一个单词生成器,可以从默认列表中生成一个随机单词,该列表也可以通过用户输入进行修改。我正在寻找一种方法来制作它,以便按钮保存列表,以便用户下次运行应用程序时,他们将拥有与以前相同的列表。 txtaddverb 是用户输入的文本框。缺少的按钮仅对名词、形容词和副词列表执行相同的操作。

我的代码如下所示:

  public class Lists
    
        public static List<string> verbList = new List<string>() "eat", "scramble", "slap", "stimulate";

        public static Random randomverb = new Random();
    


public string pickRandomVerb()

        
            return Lists.verbList[Lists.randomverb.Next(0, Lists.verbList.Count)];
        

public void button1_Click(object sender, EventArgs e)

        
            if (Lists.verbList.Count > 0) verb.Text = pickRandomVerb();
        

public void button5_Click(object sender, EventArgs e)

        
            Lists.verbList.Add(txtaddverb.Text);
            txtaddverb.Clear();
         

public void button9_Click(object sender, EventArgs e)

        
            Lists.verbList.Clear();
            verb.Clear();
            txtaddverb.Clear();
        

//below is the button that I want to save the list

public static void button13_Click(object sender, EventArgs e)

        
            //need help here
        

【问题讨论】:

【参考方案1】:

视情况而定。你想在哪里保存输入?在文本文件中?在数据库中?

保存到文本文件的示例

        // create a writer and open the file
        TextWriter tw = new StreamWriter("date.txt");

        // write a line of text to the file
        tw.WriteLine(DateTime.Now);

        // close the stream
        tw.Close();

【讨论】:

最简单的。【参考方案2】:

List&lt;string&gt; 写入文件:

File.WriteAllLines(path, verbList);

如果文件不存在,这将创建文件,否则将覆盖它。

从文件中读取:

List<string> verbList = File.ReadAllLines(path).ToList();

【讨论】:

【参考方案3】:

如果这个项目更多地供个人使用,那么您可以将列表写入文本文件并在程序加载时将其读回。可以为此实现流读取器和流写入器类。示例代码见http://msdn.microsoft.com/en-us/library/aa903247%28v=vs.71%29.aspx。

如果多个人将使用您的应用程序,我会说将列表保存到数据库将是一个更好的解决方案。这是一个开始的好地方http://www.dreamincode.net/forums/topic/31314-sql-basics-in-c%23/#/ 如果您没有 SQL 服务器,则可以针对 MS Access 之类的东西调整教程。 (您将使用 System.Data.OleDb 而不是 System.Data.SqlClient)

有很多文章都在讨论如何在文本文件或数据库中读取和写入信息。稍微搜索一下,如果我发布的两个链接没有您想要的内容,您应该能够找到适合您需要的内容。

【讨论】:

以上是关于制作一个按钮,在程序下次运行时保存列表的主要内容,如果未能解决你的问题,请参考以下文章

下次运行应用程序时保存文本框值

将 Interactive JTable 的内容保存到 .txt 文件以在下次运行时读取它

nodejs 调试 - 保存脚本的状态(包含所有对象和 var 值)并在下次运行时使用它

如何在程序运行之间保存/恢复表单和控件?

如何在运行时编辑 application.properties(以备下次使用)

在下次运行之前以后台模式关闭应用程序[重复]