我需要从按钮方法返回一个字符串。我该怎么做?
private string folderPathButton_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
folderBrowser.ShowDialog();
string folderPath = folderBrowser.SelectedPath;
return folderPath;
}
在按钮上单击该方法我得到文件夹路径。现在我需要返回它。但是这段代码不起作用? 任何人都可以帮我解决问题吗?我怎样才能返回文件夹路径并从另一个方法调用它?
答案 0 :(得分:3)
您无法更改活动的签名。
你可以创建另一个不同的方法来返回一个字符串并完成工作并从按钮处理程序和你需要它的任何地方调用它。
private void folderPathButton_Click(object sender, EventArgs e)
{
browseAndStuff();
}
private string browseAndStuff()
{
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
folderBrowser.ShowDialog();
string folderPath = folderBrowser.SelectedPath;
return folderPath;
}
答案 1 :(得分:2)
你不能这样做,click事件返回void。
答案 2 :(得分:2)
从按钮事件中调用您的其他方法。点击时会触发按钮事件 - 没有任何程序可以执行,因此您无法从方法调用按钮事件,因为它没有任何意义。
答案 3 :(得分:1)
很抱歉没有回答你提出的问题,但正如其他人已经说过的那样 - 我不相信这是可能的。
如果我理解正确,你真正想要做的就是改变选择的文件夹路径,所以我想你想要这样的东西:
private string folderPathButton_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
folderBrowser.ShowDialog();
txtFolder.Text = folderBrowser.SelectedPath;
}
假设txtFolder是文本框控件的名称。
答案 4 :(得分:1)
正如其他人所解释的那样,你必须做这样的事情,并添加防护,这样如果用户想要从对话框中取消,你就不会意外地覆盖该值。
private string myFolderPath;
private string folderPathButton_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
if(DialogResult.OK == folderBrowser.ShowDialog())
{
myFolderPath = folderBrowser.SelectedPath;
}
}
答案 5 :(得分:0)
当您单击按钮时,该方法会触发,此时您将文件夹路径存储在变量文件夹路径中 - 然后您将字符串返回到您来自的任何地方,而不是任何地方(单击按钮不会存储任何内容)变量)。
所以你需要做的是创建一个类变量并在button方法中为它赋值。
答案 6 :(得分:0)
click事件处理程序应该具有返回类型void,因此您无法从中返回任何内容。单击按钮时会调用事件处理程序,因此自行调用它是没有意义的。
如果要保留文件夹路径以供以后处理,只需将其保存在字段/属性中即可。
答案 7 :(得分:0)
点击事件处理程序会在用户点击该按钮时触发。所以你开始在那里采取行动。您可以使用所有其他方法执行您在该方法中尝试执行的所有操作。
答案 8 :(得分:0)
您无法真正更改按钮单击事件的签名,因此您需要处理在某些其他逻辑单击按钮时要返回的字符串值。您可以存储在类中的类变量中,或者在相关表单上的标签,文本框或其他图形组件中显示字符串。如果要使用所选路径保存或打开文件,可以将路径传递给另一个处理保存/加载工作的函数,然后向用户显示文件或其内容(通过打开它或在其上显示其内容)表单,取决于要求)或通知用户文件已在指定路径上成功保存。