Передача данных между формами с использованием текстовых полей и списков - PullRequest
0 голосов
/ 11 октября 2010

Эй, ребята, у меня возникают проблемы с эффективной передачей данных между формами.

Итак, у меня есть форма заявки. Имеет одну кнопку:

    private void addBtn_Click(object sender, EventArgs e)
    {
        string data = string.Format("{0} \t {1} \t {2} \t {3} \t {4} \t {5}",
            fnameTxtBox.Text, 
            lnameTxtBox.Text, 
            cellNumTxtBox.Text, 
            landLineTxtBox.Text, 
            dobPicker.Text, 
            commentsTxtBox.Text);

        Black_Book_2010 myBlack_Book_2010 = new Black_Book_2010();
        myBlack_Book_2010.info = data;
        myBlack_Book_2010.ShowDialog();
    }

Таким образом, сверху, то, что это делает, получает данные из каждого txtbox в форме, помещает их все в одну строку, а затем сохраняет всю эту информацию в переменную data.

Затем я нажимаю кнопку, которая переводит меня во вторую форму. Я говорю, сохраните переменную data в переменную info в форме Black_Book_2010.

Вот форма Black_Book_2010:

Вверху я объявляю переменную, которую я хочу, чтобы в конечном итоге сохранить данные в

string moreData = "";

Тогда вот переменная "info", которая теперь содержит данные:

    public string info
    {
        set
        {
            moreData = value;
        }
    }

Когда форма загружается, я получаю ее, чтобы получить переменную moreData и добавить ее в список:

    private void Black_Book_2010_Load(object sender, EventArgs e)
    {
        data.Items.Add(moreData.ToString());
    }

У меня также есть кнопка в форме Black_Book_2010, которая называется Add, которая возвращает меня к моей форме ввода данных, если я хочу добавить больше данных.

Но когда я заполняю форму и нажимаю кнопку Добавить, моя сводная форма запускается снова, она не загружает предыдущие данные, она просто открывает новую сводную форму.

Что мне нужно, так это то, что когда я нажимаю кнопку «Добавить» в форме ввода данных, она добавляет эти данные в существующую сводную форму, а не создает совершенно новую.

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Создание первой формы полностью под контролем второй формы.

Сделайте кнопку «Добавить» во второй форме общедоступной, присоедините к ней обработчик события щелчка и разрешите ее обрабатывать в первой форме.

В этом обработчике, Hide() во втором диалоговом окне, соберитеданные и покажите их снова, когда будете готовы.

Убедитесь, что вы создали Black_box только один раз, и при необходимости покажите / скройте его.

1 голос
/ 11 октября 2010

Вы создаете новый экземпляр формы Black_Book каждый раз, когда нажимаете кнопку добавления.
Итак, старые данные исчезли.
Попробуйте использовать тот же экземпляр формы.

Другое решение будет заключаться в том, чтобы вести список предметов за пределами формы черной книги и использовать эту форму в этом списке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...