我的问题已经在标题中了。让我们澄清一下,基本上我做了一个简单的程序。在该程序中有两个按钮和一个文本框,一个用于选择另一个文件夹以查看文本框。这是我的代码:
private void button1_Click(object sender, EventArgs e)
{
var filenames = Directory.GetFiles("C:/Users/Example/Desktop/folder");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Lines = filenames
}
但文件名用红色加下划线。这意味着我无法从button2访问“filenames”元素,任何人都可以告诉我如何访问它。谢谢
答案 0 :(得分:4)
文件名数组,以使用两个按钮的内部点击事件,如注释中所述。此外,我们无法声明类型为var global的变量。
string[] filenames;
private void button1_Click(object sender, EventArgs e)
{
filenames = Directory.GetFiles("C:/Users/Example/Desktop/folder");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Lines = filenames
}
答案 1 :(得分:2)
如评论中所述,应该是这样的:
string[] filenames;
private void button1_Click(object sender, EventArgs e)
{
filenames = Directory.GetFiles("C:/Users/Example/Desktop/folder");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Lines = filenames
}
答案 2 :(得分:1)
您已在button1单击事件处理程序方法中声明并初始化了filenames变量。因此,它只能在该方法(Scope)内访问。如果您还需要从外部访问它,那么您需要在类级别范围声明变量(在本例中为文件名)。
string[] filenames;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//var filenames = Directory.GetFiles("C:/Users/Example/Desktop/folder");
filenames = Directory.GetFiles(@"C:/Users/Example/Desktop/folder");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Lines = filenames;
}
推荐读物...
C# - Understanding Variable Scope
C# Variable Scopes