如何使用GUI以相同的形式查看数据

时间:2015-05-02 22:35:36

标签: c#

  

创建表单以输入将保存到文件的库存项目。您将需要创建一个类,以包括项目代码,描述和价格。使用表单上的按钮将输入的项目添加/保存到您的文件。当竞争添加时,这也将清除表单上的文本框。这将使其准备好添加下一个项目。在表单上包含另一个按钮,按下该按钮将显示表单中文件中的所有项目(您添加的)。

我需要做的主题。我尝试了几种方法,但它总是崩溃或给我一个消息,我的文件正在被使用。你能告诉我我需要做些什么来解决这个问题吗?

    public partial class Form1 : Form
{
    const string DELIM = ", ";
    const string FILENAME = @"C:\Users\Duckie\Desktop\C# Practice\Chapter.04\Quiz4\Inventory.txt";
    int code;
    string description;
    double price;
    static FileStream outFile = new
        FileStream(FILENAME,FileMode.Create,FileAccess.Write);
    StreamWriter writer = new StreamWriter(outFile);

    public Form1()
    {
        InitializeComponent();
    }

    private void saveButton_Click(object sender, EventArgs e)
    {
        code = Convert.ToInt32(codeBox.Text);
        description = descriptionBox.Text;
        price = Convert.ToDouble(priceBox.Text);
        writer.WriteLine(code + DELIM + description + DELIM + price);
        codeBox.Clear();
        descriptionBox.Clear();
        priceBox.Clear();
    }
}

}

1 个答案:

答案 0 :(得分:0)

首先,使用SaveFileDialog打开文件。如果要在列表或表中显示所有库存项目,请使用OpenFileDialog打开文件。然后,您不需要在字符串变量中包含文件的完整路径。如果将文件移动到另一个目录会发生什么?

好的,这里有一些代码用于保存到文本文件然后阅读它。基本上代码的作用是保存您在文本框中键入的名称。唯一的要求是该文件已经存在(我只使用过OpenFileDialog)。 保存和读取文件的类:

class SaveToFile
{
    static List<string> nameList = new List<string>();
    public static void Save(string filePath, string input)
    {   ///true only says that it is okay to append new lines into the file
        using (StreamWriter sWriter = new StreamWriter(filePath, true))
        {
            sWriter.WriteLine(input);
        }
    }

    public static List<string> Read(string filePath)
    {
        string line = string.Empty;
        nameList.Clear();
        using (StreamReader sReader = new StreamReader(filePath))
        {
            while ((line = sReader.ReadLine()) != null)
            { 
                //I populate the list with the lines in the file
                nameList.Add(line);
            }
        }
        return nameList;
    }
 }

//和视图

public partial class SaveReadForm: Form
    {
        private OpenFileDialog opnFileDialog = new OpenFileDialog();
        Person p = new Person();
        public SaveReadForm()
        {
            InitializeComponent();

            opnFileDialog.Filter = "Text File[.txt]|*.txt";

        }

        private void saveBtn_Click(object sender, EventArgs e)
        {
            if (opnFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            else
            {
                if (!String.IsNullOrEmpty(input.Text))
                {
                    p.Name = input.Text;
                    SaveToFile.Save(opnFileDialog.FileName, p.Name);
                }
                else
                {
                    MessageBox.Show("Add your name", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }

        private void readBtn_Click(object sender, EventArgs e)
        {

            if (opnFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            else
            {
                nameLstBox.Items.Clear();
                foreach (string s in SaveToFile.Read(opnFileDialog.FileName))
                {
                    nameLstBox.Items.Add(s);
                }
            }
        }

我希望这有助于您了解如何写入和读取文件。