我正在努力获得如何获得当前形式TextBox
的正确背景信息。
现在我有一个按钮,按下该按钮将允许用户选择一个文件夹。我想采用该路径并将其放在TextBox
中,目前名为installPath
。
namespace CustomLauncher
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void browse_Click(object sender, EventArgs e)
{
//browse to select a folder
FolderBrowserDialog folder = new FolderBrowserDialog();
DialogResult result = folder.ShowDialog();
if (result == DialogResult.OK)
{
MessageBox.Show("You chose" + folder.SelectedPath);
}
else if (result == DialogResult.Cancel)
{
return;
}
}
我见过各种各样的尝试,比如......
this.Controls.Find("installPath");
// visual studio不喜欢这个
Control myControl1 = FindControl("installPath");
//也不喜欢这个
我还看到了其他一些方法。虽然我似乎找不到视觉工作室会接受的。我觉得我错过了关于这个事件监听器的上下文的一些相当明显/巨大的东西,这就是为什么我无法弄清楚如何实现这个目标。
答案 0 :(得分:2)
为什么不this.installPath.Text = folder.SelectedPath
? TextBox
是另一种形式吗?
顺便说一句,您已经在ASP.NET网站上看到了FindControl
方法。
如果您使用的是.NET 2或更高版本,则可以使用Control.ControlCollection.Find
Method。
TextBox txtInstallPath = (TextBox)this.Controls.Find("installPath", true)[0];
答案 1 :(得分:0)
尝试使用此代码:
private void browse_Click(object sender, EventArgs e)
{
//browse to select a folder
FolderBrowserDialog folder = new FolderBrowserDialog();
DialogResult result = folder.ShowDialog();
if (result == DialogResult.OK)
{
installPath.Text = folder.SelectedPath;
MessageBox.Show("You chose" + folder.SelectedPath);
}
else if (result == DialogResult.Cancel)
{
return;
}
}