【问题标题】:Save ArrayList for use on next program execution保存 ArrayList 以供下次程序执行时使用
【发布时间】:2012-07-23 16:39:05
【问题描述】:

我有一个 c# 程序,它将用户输入的数据保存到隐藏的 xml 文件中。我希望能够存储特定 xml 文件的文件名,以便当用户退出程序并再次重新输入时,他们可以从下拉列表中选择该文件的名称并将存储的数据加载到该文件中xml 文件转换成另一种形式。我正在考虑将文件的名称保存到数组列表中,因为它们是动态的,但是我无法找到一种方法来保存或保留此数组列表中的值,以便可以将它们分配给表单上的组合框用户进入应用程序。有人有什么建议或想法吗?

【问题讨论】:

    标签: c# arraylist save settings.settings


    【解决方案1】:

    如果您要将 XML 文件保存到磁盘,为什么不在应用程序开始时读取目录以获取文件列表,然后使用您检索到的文件名填充下拉列表?

    【讨论】:

      【解决方案2】:
      1. .settings 文件添加到您的项目中。
      2. 在设置编辑器中为您的隐藏文件列表提供名称(例如 HiddenFiles)
      3. 选择StringCollection类型
      4. 选择范围(默认为用户)
      5. 在值编辑器中提供值。

      现在您的设置将通过这种方式从代码中获得:

      combobox.DataSource = Settings.Default.HiddenFiles;
      

      如果您想在此列表中添加另一个文件名(该用户稍后启动应用程序后可用):

      if (Settings.Default.HiddenFiles == null)
          Settings.Default.HiddenFiles = new StringCollection();
      Settings.Default.HiddenFiles.Add(pathToFile);
      Settings.Default.Save();
      

      【讨论】:

      • 它不允许我为设置选择 StringCollection 类型。抱歉,我对这些设置完全陌生。添加 .settings 文件是什么意思?我在解决方案资源管理器的“属性”下拉菜单下的 Settings.settings 目录中执行此操作。
      • 不,不。右键单击项目名称。选择Add > New Item。在General 节点下选择Settings File。届时 StringCollection 将可用。
      • 谢谢,是的,我做到了,但是当我执行导致文件路径添加到 HiddenFiles 设置的操作时出现错误。
      【解决方案3】:

      这是在运行时产生异常的代码。

      Settings1.Default.eventSaveArrayList.Add(clubNameTextBox.Text.ToString() + " " + DateString); Settings1.Default.Save();

      【讨论】:

      • 你得到什么样的异常?顺便说一句,您不需要在字符串类型的属性上调用 .ToString()。
      • 对象引用未设置为对象的实例。它说它是以下代码行: Settings1.Default.eventSaveArrayList.Add(clubNameTextBox.Text + " " + DateString);
      • 如果您没有通过编辑器提供默认文件名,那么您应该创建集合。请参阅我的更新答案。
      • 太棒了,它现在可以工作了!现在我需要找到一种方法让它通过编辑器检查是否有默认文件名,这样它就不会每次都创建一个新的数组集合。我只需要它在用户第一次使用这个程序时创建一个新的数组集合。我能够自己解决这个问题,所以不需要额外的帮助。再次感谢
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多