как перейти к следующей строке в ListBox? - PullRequest
0 голосов
/ 06 марта 2019

Эй, ребята, я хочу загрузить путь к файлу в моем списке.все в порядке, у меня просто проблема, которая возникает, когда я закрываю приложение, а затем снова открываю его. загруженные файлы находятся на одной дорожке, и он распознает их как один элемент в списке, я пытался использовать "\ n", "\ r"из этих работ ... так что вы, ребята, предлагаете?(я сохраняю изменения пользователя в настройках приложения, чтобы прочитать их позже)

private void Form1_Load(object sender, EventArgs e)
{

    if (Properties.Settings.Default.FileList != string.Empty)
    {
        fileListBox.Items.Add(Properties.Settings.Default.FileList);
    }
    UnlockForm f2 = new UnlockForm();

    if (Properties.Settings.Default.PasswordCheck == true)
        f2.ShowDialog();
    else
        return;
}

private void button1_Click_1(object sender, EventArgs e)
{
    op = new OpenFileDialog();
    op.Title = "Select your stuff";
    op.Filter = "All files (*.*)|*.*";

    if (op.ShowDialog() == DialogResult.OK)
    {
        fileName = op.FileName;
        fileListBox.Items.Add(fileName);
    }

    Properties.Settings.Default.FileList += fileName+"\n";
    Properties.Settings.Default.Save();
}

Ответы [ 2 ]

1 голос
/ 06 марта 2019

При создании свойства в конструкторе настроек:

  • Задайте для имени любое имя, например Files
  • Установите тип System.Collections.Specialized.StringCollection
  • Установите область как User
  • Если вы хотите иметь некоторые значения по умолчанию, используйте ... в ячейке Value для редактирования значения по умолчанию.

Тогда вы можете легко установить его как DataSource из ListBox.

listBox1.DataSource = Properties.Settings.Default.Files;

Также добавить несколько значений:

Properties.Settings.Default.Files.Add("something");
Properties.Settings.Default.Save();

Если вы добавили что-то в Files, если вы хотите, чтобы ListBox показывал изменения, установите DataSource на ноль, а затем на Files снова.

0 голосов
/ 06 марта 2019

Похоже, вы определили свой FileList как String в наших настройках приложения.Это можно сделать двумя способами.

a) Использование FileList as Collection.

Вы можете изменить тип FileList на StringCollection в настройках своего приложения.Затем вы можете добавить элементы в свой список следующим образом:

 fileListBox.Items.AddRange(Properties.Settings.Default.FileList.Cast<string>().ToArray());

b) Использование FileList в качестве строки.

Если вы действительно хотите сохранить Properties.Settings.Default.FileList в виде строки, выпотребуется разделить его на ходу, используя ваш символ-разделитель (скажем, ';')

fileListBox.Items.AddRange(Properties.Settings.Default.FileList.Split(new[] { ';' },StringSplitOptions.RemoveEmptyEntries));

В вашем случае, коллекция может быть лучшим подходом, если у вас нет особых причин, выходящих за рамки OP дляиспользуйте строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...