【发布时间】:2016-11-15 22:51:31
【问题描述】:
我在 C# 中创建了一个带有几个按钮和文本框的简单表单。用户将输入各种详细信息,例如项目描述和代码号、输出文件位置等。
最终用户将启用一个浏览按钮,以允许他/她选择报告所在的输入目录。
浏览按钮使用 FolderBrowserDialog 并检查结果。如果结果没问题,那么我使用 locationArray = Directory.GetFiles(fbd.SelectedPath, "*.txt");
创建了一个包含所有文件路径的数组该类被定义为 public void。
我的计划是在完成按钮中添加一些脚本,然后该按钮将遍历数组,提取文件名,读取每个文件的内容并生成包含各种详细信息的报告。
我遇到的问题是我似乎无法访问另一个类中的数组(完成按钮)。
我已经在类之前定义了数组——string[] locationArray;
然后使用类,我使用文件路径填充数组,如下所示:
locationArray = Directory.GetFiles(fbd.SelectedPath, "*.txt");
在这个阶段,我知道数组正在被填充,因为我已经显示了数组的长度。
有人可以建议我如何访问不同类下的数组,以便我可以遍历它。
提前致谢。
更具体地说,我的代码如下所示:
string[] locationArray;
public void button1_Click_1(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.Description = "Browse Directory";
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
locationArray = Directory.GetFiles(fbd.SelectedPath, "*.txt");
}
FinishButton.Enabled = true;
}
试图在此处访问 locationArray:
private void button1_Click(object sender, EventArgs e)
{
string sProjectName = ProjectName.Text;
string sProjectNumber = ProjectNumber.Text;
string sOutputDirectory = OutputDirectory.Text;
const string message1 = "Done!";
const string caption1 = "Completed";
var result = MessageBox.Show(message1, caption1,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
if (result == DialogResult.OK)
Environment.Exit(0);
}
希望这能让它更清楚。
汤姆
【问题讨论】:
-
请不要发布您的代码描述。只需发布相关的代码。
-
这里有很多关于在表单之间传递数据的答案。在不局限于列表或数组的情况下进行更多搜索,看看是否找不到好的答案。
-
命名空间 Generic_Reconciliation_Report { public partial class ReportFormDesign : Form { public ReportFormDesign() { InitializeComponent(); }
-
我指的是 InitializeComponent() 的内容。您可以在 Designer.cs 部分类中找到它,单击表单箭头即可访问该类:pasteboard.co/rHBzUzfHb.png
-
@DStanley - 感谢您的评论。不太确定是否有其他方法。我需要存储文件名和路径,以便稍后根据单个文件名进行一些检查。