我正在使用此代码生成所选文件的路径:
private void LoadNewFile()
{
OpenFileDialog ofd = new OpenFileDialog();
string _xmlPath1 = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
System.Windows.Forms.DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
{
userSelectedFilePath = ofd.FileName;
}
}
private void tbFilePath_TextChanged(object sender, EventArgs e)
{
}
在我使用此代码传递数据之前:
private void btn_compare_Click(object sender, EventArgs e)
{
string x1 = System.IO.File.ReadAllText(@"C:\Users", Encoding.UTF8);
我如何修改它而不是手动获取路径的x1,我需要它等于xmlPath1,所以字符串x1 = xmlPath1
答案 0 :(得分:0)
只需将_xmlPath1
更改为字段,即可从班级中的任何方法访问该字段。
示例:
public class MyClass
{
protected String _xmlPath1;
' insert your methods here
}
如果您的方法不在同一个类中,则必须进一步扩大_xmlPath1
的范围。
编辑:将VB.net语法更改为C#
答案 1 :(得分:0)
1)如果userSelectedFilePath是私有字段,您可以在btn_compare_Click中使用它
2)如果它是局部变量,则将其设为私有字段,然后参见1
3)使方法返回文件
private string LoadNewFile()
{
OpenFileDialog ofd = new OpenFileDialog();
string _xmlPath1 = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures);
System.Windows.Forms.DialogResult dr = ofd.ShowDialog();
if (dr == DialogResult.OK)
return ofd.FileName;
else
return null;
}
并使用它(您必须添加验证逻辑)
private void btn_compare_Click(object sender, EventArgs e)
{
string x1 = System.IO.File.ReadAllText(LoadNewFile(), Encoding.UTF8);
}
选项3是最好的方法,因此您可以避免额外的字段并使btn_compare_Click独立于其余代码。
在这种情况下,您还应该给它一个更好的名称,如GetFileToRead()