问题1:用户在文本框中输入的内容显示在列表框中,但其他文本首先显示,然后用户输入的内容显示在最后。
问题2:我的StreamReader
/ StreamWriter
我不断收到新的C#1601错误代码,因此我不知道所有条款。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace foodOrderApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//textDialog = new SaveFileDialog();
//textDialog.Filter = ""
}
private void addToListButton_Click(object sender, EventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(foodText.Text, "^[a-zA-Z]"))
{
MessageBox.Show("This textbox only accepts alphebetical characters");
}
else
{
displayFoodOrder.Items.Add(foodText.ToString());
}
}
private void loadButton_Click(object sender, EventArgs e)
{
if (loadButton.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(
new FileStream(loadButton.FileName,
FileMode.Create,
FileAccess.ReadWrite)
);
sw.WriteLine(displayFoodOrder.Text);
sw.Close();
}
}
private void saveOrder_Click(object sender, EventArgs e)
{
if (saveOrder.ShowDialog() == DialogResult.OK)
{
StreamReader sr = new StreamReader(
new FileStream(saveOrder.FileName,
FileMode.Open,
FileAccess.Read)
);
}//end if
}
}
}
错误:
CS1061'Button'不包含'FileName'的定义,也没有扩展方法'FileName'接受类型'Button'的第一个参数(你是否缺少using指令或汇编引用?)
第42行
答案 0 :(得分:3)
我真的不明白你的第一个问题,其他文字首先出现了什么?
对于你的第二个问题,我认为你还有其他问题。首先你正在使用:
if (loadButton.ShowDialog() == DialogResult.OK)
和
if (saveOrder.ShowDialog() == DialogResult.OK)
据我所知,这些是你点击的按钮,它们没有ShowDialog
方法。
您实际看到的错误是由于您尝试从我仍然怀疑的按钮获取FileName
属性(并由错误消息备份 - 'Button' does not contain a definition for 'FileName'
):
loadButton.FileName
和
saveOrder.FileName
我怀疑你实际应该使用的是OpenFileDialog
和SaveFileDialog
控件,但你实际上引用了你点击的按钮。
答案 1 :(得分:1)
我相信Jonno关于SaveFileDialog
和OpenFileDialog
是正确的。单击保存或加载按钮时,应打开其中一个对话框并等待其结果。然后就可以了,你可以SomeFileDialog.FileName
而不是loadButton.FileName
你的第一个问题是(如果我正确解读)你看到的东西+用户输入的内容。
这是因为你正在做
displayFoodOrder.Items.Add(foodText.ToString());
而不是尝试
displayFoodOrder.Items.Add(foodText.Text);
您要整个控件而不只是文本字段中的文本。
另外,作为旁注,你的正则表达式匹配第一个字符,因为^
而不是所有字符。如果您希望任何字符为.
[a-zA-Z]