solutionsville Ответов: 1

Как мне сохранить в C# элемент управления ListView.свойство selecteditems(и подпунктам) к тексту?


Как сохранить выбранные строки из списка в текстовый файл?

Что я уже пробовал:

I tried using this;

<pre lang="c#">
        private void CMSavetoFile_Click(object sender, EventArgs e)
        {
            foreach (var v in LV.SelectedItems)
            {
                File.AppendAllText("outputfile.txt", v.ToString() + Environment.NewLine);
            }
        }


Это возвращает только первый столбец, и у меня есть в общей сложности 12 столбцов (0-11).

Я нахожу много примеров сохранения всего ListView в текстовый файл или excel и т. д., Но не только выбранных элементов.

Спасибо!

phil.o

Можете ли вы перечислить каждый столбец для определенной строки?

solutionsville

Это то, что я использую для отображения данных в виде списка;

частный недействительными UpdateListview()
{
ListView TLV;
TLV = FilterView ? LV2 : LV;
List<griditem> list = новый список<griditem>(GridList);
ПДК.UseWaitCursor = true;
ПДК.Предметы.Четкий();
TLV.BeginUpdate();

// очистите сетку и покажите маленький центрированный индикатор выполнения
Для jpanel.Топ = ПДК.Топ + TLV.Высота / 2;
Для jpanel.Левый = ПДК.Слева + TLV.Ширина / 2 - JPanel.Ширина / 2;
JPB.Maximum = список.Рассчитывать;
JPB по.Значение = 0;
Для jpanel.Видимое = истинное;
Для jpanel.BringToFront();

// запись в сетку только отфильтрованных линий сетки
foreach (var s в списке)
{
Если (s.show == false) продолжить;
ВАР Т = новый элемент listviewitem(С. Время)
{
Tag = s
};
т. подпункты.Добавить(С. Линии.Метод toString());
т. подпункты.Добавить(С. Группы.Метод toString());
т. подпункты.Добавить(С. Метки);
т. подпункты.Добавить(s.HexLabelStr);
т. подпункты.Добавить(С. реж);
т. подпункты.Добавить(С. Tseq);
т. подпункты.Добавить(С. Rseq);
т. подпункты.Добавить(С. Mnum);
т. подпункты.Добавить(С. ИС);
т. подпункты.Добавить(Utils.PbaseToStr(С. сайте pbase));
т. подпункты.Добавить(С. полезная нагрузка);
ПДК.Предметы.Добавить(t);
JPB по.Значение++;
}
TLV.EndUpdate();
ПДК.UseWaitCursor = false;
Для jpanel.SendToBack();
Для jpanel.Видна = ложь;
SelectedGridItem = null;
}

phil.o

Извините, но это не ответ на мой вопрос :)

solutionsville

мое извинение. Я не понял вашего вопроса. Это то, что я использую для сохранения содержимого ввода ListView в файл.

частная асинхронного CMSavetoFile_Click недействительным(объект отправителя, EventArgs в электронной)
{
пробовать
{
используя (диалоговое окно savefiledialog ЮФО = новое диалоговое окно savefiledialog() { фильтр = "файл ОПГ дат | *.дать", ValidateNames = истина, с = @"C:\Test.dat", OverwritePrompt = ложь })
{
if (sfd.ShowDialog() == DialogResult.ОК)
{
используя (textwriter в tст = новая модулю записи StreamWriter(новый файловый поток(СФД.Именем, Содержит Filemode.Create), Кодирование.Кодировке utf8))
{
по каждому элементу (элемент, элемент listviewitem в НН.Предметы)
{
ждите TW.WriteLineAsync(item.Подпункты[0].Текст + "\t" + пункт.Подпункты[1].Текст + "\t" + пункт.Подпункты[2] + "\t" + пункт.Подпункты[3] + "\t" + пункт.Подпункты[4] + "\t" + пункт.Подпункты[5] + "\t" + пункт.Подпункты[6] + "\t" + пункт.Подпункты[7] + "\t" + пункт.Подпункты[8] + "\t" + пункт.Подпункты[9] + "\t" + пункт.Подпункты[10] + "\t" + пункт.Пп[11]);
}
Ящик для сообщений.Show("Файл Создан!");
}
}
}
}

поймать(исключение бывший)
{
Ящик для сообщений.Показать(напр.сообщение);
}

1 Ответов

Рейтинг:
1

#realJSOP

Код нужно добавить ToString() переопределение элементов списка. Этот переопределенный метод должен включать вызов любого из них string.Format, или использовать StringBuilder класс для построения вашего результата в форматированном виде.


solutionsville

Добавить его куда?

#realJSOP

Класс элементов, представляющий элементы вашей сетки.