如何在文本文件中保存列表框

时间:2017-08-15 11:31:55

标签: c# winforms listbox

我有2个表单,Form1我有一个按钮,在Form2我有ListBox数据。 我想要的是点击Form1上的按钮,并将Form2 ListBox中的数据保存在文本文件中。

我尝试过:

这是Form1上的按钮

private void toolStripButtonGuardar_Click(object sender, EventArgs e)
    {
        var myForm = new FormVer();

        //Escolher onde salvar o arquivo
        SaveFileDialog sfd = new SaveFileDialog();
        sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        sfd.Title = "Guardar";
        sfd.Filter = "Arquivos TXT (*.txt)|*.txt";

        if (sfd.ShowDialog() == DialogResult.OK)
        {
            try
            {

                File.WriteAllLines(sfd.FileName, myForm.listBox.Items.OfType<string>());

                //Mensagem de confirmação
                MessageBox.Show("Guardado com sucesso", "Notificação", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
    }

但它不起作用,始终将文件保存为空白。

1 个答案:

答案 0 :(得分:1)

myForm.listBox.Items.OfType<string>()

将返回一个空的枚举,因为Items包含ListBoxItem个实例

以下内容应该有效:

ListBox listBox = myForm.listBox;
IEnumerable<string> lines = listBox.Items.Select(item => listBox.GetItemText(item));

File.WriteAllLines(sfd.FileName, lines);