我正在开发一个C#应用程序,当表单加载时,我希望它读取txt文件的内容并将其存储到数组中。接下来,当单击表单上的按钮时,我希望按钮单击事件访问该数组。如何将数组传递给按钮单击事件?我的下面的代码有一个错误“statusArray在当前上下文中不存在”,并且与按钮单击事件中对数组的引用有关。我需要做什么?
苏珊
private void btnCompleted_Click(object sender, EventArgs e)
{
for (int i = 0; i < statusArray.Count; i++)
{
if (statusArray[i].Equals("Complete"))
lstReports.Items.Add(statusArray[i-2]);
}
}
private void Reports_Load(object sender, EventArgs e)
{
// declare variables
string inValue;
string data;
ArrayList statusArray = new ArrayList();
inFile = new StreamReader("percent.txt");
// Read each line from the text file
while ((inValue = inFile.ReadLine()) != null)
{
data = Convert.ToString(inValue);
statusArray.Add(inValue);
}
// Close the text file
inFile.Close();
}
答案 0 :(得分:2)
将ArrayList作为成员变量存储在表单上,如下所示:
private ArrayList statusArray = new ArrayList();
private void btnCompleted_Click(object sender, EventArgs e) {
for (int i = 0; i < statusArray.Count; i++)
{
if (statusArray[i].Equals("Complete"))
lstReports.Items.Add(statusArray[i-2]);
}
}
private void Reports_Load(object sender, EventArgs e)
{
// declare variables
string inValue;
string data;
inFile = new StreamReader("percent.txt");
// Read each line from the text file
while ((inValue = inFile.ReadLine()) != null)
{
data = Convert.ToString(inValue);
statusArray.Add(inValue);
}
// Close the text file
inFile.Close();
}
答案 1 :(得分:1)
将您的arrayList声明移到Reports_Load(object sender, EventArgs e)
方法之外,这使它成为一个全局类。
您可能还会发现List<string>
最好将数据存储在(强类型)中
答案 2 :(得分:1)
ArrayList与不是与数组相同,如果你使用.Net 2.0或更高版本,则ArrayLists evil 。
至于失败的原因:你的arraylist的范围是Reports_Load()函数。您希望将其移至类级别,并声明为List<string>
。
如果你真的想要一个数组,另一个选择就是使用File类'.ReadAllLines()
方法。
private string[] status;
private void btnCompleted_Click(object sender, EventArgs e)
{
for (int i = 2; i < status.Length; i++)
{
if (status[i] == "Complete")
lstReports.Items.Add(status[i-2]);
}
}
private void Reports_Load(object sender, EventArgs e)
{
status = File.ReadAllLines("percent.txt");
}