0

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");//VisualStudioはこれが気に入らなかった

Control myControl1 = FindControl("installPath");//これも気に入らなかった

私はこれを行う他のいくつかの方法も見てきました。VisualStudioが受け入れるものを見つけることができないようですが。このイベントリスナーのコンテキストについて、かなり明白で巨大な何かが欠けているように感じます。そのため、これを実現する方法を理解できません。

4

2 に答える 2

2

どうしてthis.installPath.Text = folder.SelectedPathTextBox別のフォームにありますか?

FindControlところで、 ASP.NETサイトでのアプローチを見てきました。

Control.ControlCollection.Find.NET 2以降を使用している場合は、メソッドを使用できます。

TextBox txtInstallPath = (TextBox)this.Controls.Find("installPath", true)[0];
于 2012-11-14T22:59:49.653 に答える
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;
    }
}
于 2012-11-14T23:03:31.480 に答える