Agarwal1984 Ответов: 1

Как сохранить значение folderbrowserdialog в текстовом поле во время выполнения в приложении C# .NET windows?


Привет,

Я хочу создать приложение для среды выполнения для создания элементов управления и функциональности, элементы управления созданы успешно, но значение не хранится в текстовом поле в соответствии с диалогом папки.

Пожалуйста, помогите мне.
Как можно это разрешить?

Спасибо
Анкит Агарвал
инженер-программист

Что я уже пробовал:

private void btnBrowse_Click(object sender, EventArgs e)
        {
            //LoadControls();
            ChooseFolder();
        }

        public void ChooseFolder()
        {
            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
            {

                TextBox textbox = new TextBox();
                textbox.Text = folderBrowserDialog1.SelectedPath;
                MessageBox.Show(textbox.Text);
            }
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            int count = panel1.Controls.OfType<Label>().ToList().Count;
            TextBox textbox = new TextBox();
            count = panel1.Controls.OfType<TextBox>().ToList().Count;
            textbox.Location = new Point(3, 25 * count);
            textbox.Size = new Size(188, 20);
            textbox.Name = "textbox_" + (count + 1);
            textbox.TextChanged += new System.EventHandler(this.TextBox_Changed);
            panel1.Controls.Add(textbox);

            Button button = new Button();
            //count = panel1.Controls.OfType<Button>().ToList().Count;
            button.Location = new Point(207, 25 * count);
            button.Size = new Size(75, 23);
            button.Name = "button_" + (count + 1);
            button.Text = "Browse " + (count + 1);
            button.Click += new System.EventHandler(this.btnBrowse_Click);
            panel1.Controls.Add(button);
        }

1 Ответов

Рейтинг:
12

Mehedi Shams

Привет Анкит,

Текстовое поле в btnAdd_Click() событие-это не то же самое, что текстовое поле в ChooseFolder() метод. То есть текстовое поле в ChooseFolder() метод создается и сохраняет значение, но как только он выходит из метода, он погибает. Таким образом, он не хранит значение в btnAdd_Click() событие как это текстовое поле совершенно не знает о другом текстовом поле.

Я думаю, ваша бизнес-логика такова:

1) сохраните значение пути при нажатии кнопки "Обзор".
2) Создайте массив элементов управления и добавьте путь в текстовое поле при нажатии кнопки "Добавить".

Если это так, то будут сделаны следующие изменения.

string TextBoxValue = "";
public void ChooseFolder()
{
    FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
    if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
        TextBoxValue = folderBrowserDialog1.SelectedPath;   // Storing the value in a temporary string.
}
Затем добавьте строку, как указано в приведенном ниже коде.
private void btnAdd_Click(object sender, EventArgs e)
{
    int count = panel1.Controls.OfType<Label>().ToList().Count;
    TextBox textbox = new TextBox();
    count = panel1.Controls.OfType<TextBox>().ToList().Count;
    textbox.Location = new Point(3, 25 * count);
    textbox.Size = new Size(188, 20);
    textbox.Name = "textbox_" + (count + 1);
    textbox.Text = TextBoxValue;    // This line was added.
    textbox.TextChanged += new System.EventHandler(this.TextBox_Changed);
    ...............................
    ...............................
Я надеюсь, что это решит проблему.


Agarwal1984

Как добавить текстовое поле ChooseFolder(ref?)?.

Agarwal1984

Когда я TextBox tb=new TextBox();
и пройти ChooseFolder(ref tb);
первая кнопка просмотра или хранилище значений folderBrowserDialog1 во втором текстовом поле.
как мы можем решить?

Agarwal1984

Привет

Agarwal1984

привет

Agarwal1984

Спасибо