Как я могу сохранить содержание моего listbox
объекты к текстовому файлу с помощью a SaveFileDialog
?
Я также хочу добавить дополнительную информацию к текстовому файлу и также добавить a MessageBox
высказывание, сохраненное, когда это было успешно.
это должно получиться.
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog f = new OpenFileDialog();
f.ShowDialog();
ListBox l = new ListBox();
l.Items.Add("one");
l.Items.Add("two");
l.Items.Add("three");
l.Items.Add("four");
string textout = "";
// assume the li is a string - will fail if not
foreach (string li in l.Items)
{
textout = textout + li + Environment.NewLine;
}
textout = "extra stuff at the top" + Environment.NewLine + textout + "extra stuff at the bottom";
File.WriteAllText(f.FileName, textout);
MessageBox.Show("all saved!");
}
SaveFileDialog
используется с ShowDialog ()
, чтобы показать его пользователю, и в случае успеха, используя его OpenFile ()
, чтобы получить (File) Stream
, в который вы пишете. Пример есть на странице msdn .
К ListBox
можно получить доступ через его свойство Items
, которое представляет собой просто набор элементов в нем.
У вас там происходит несколько действий - убедитесь, что вы разделили их, например,
Обратите внимание!!! Существует огромное количество исключений, которые вы можете получить при сохранении файла, посмотрите документацию и обработайте их как-нибудь...
// Get list box contents
var sb = new StringBuilder();
foreach (var item in lstBox.Items)
{
// i am using the .ToString here, you may do more
sb.AppendLine(item);
}
string data = sb.ToString();
// Append Info
data = data + ????....
// Write File
void Save(string data)
{
using(SaveFileDialog saveFileDialog = new SaveFileDialog())
{
// optional
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyComputer);
//saveFileDialog.Filter = ???;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
File.WriteAllText(saveFileDialog.Filename);
MessageBox.Show("ok", "all good etc");
}
else
{
// not good......
}
}
}
Сохранить
// fetch the selected Text from your list
string textToRight = listBox1.SelectedItem.ToString();
// Write to a file
StreamWriter sr = File.CreateText(@"testfile.txt");
sr.Write(textToRight);
sr.Close();
Сообщение
// display Message
MessageBox.Show( "Information Saved Successfully" );