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

У меня есть эта проблема:

private void loadStringToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StringLoader frmStringLoader = new StringLoader();
            string test = frmStringLoader.Result;
            frmStringLoader.ShowDialog();
            MessageBox.Show(test.ToString());
        }

И форма StringLoader:

 public partial class StringLoader : Form
    {

        private string result;
        public StringLoader()
        {
            InitializeComponent();
        }

        public string Result
        {
            get { return result; }
        }

        private void btnLoadString_Click(object sender, EventArgs e)
        {
            if ((txtString.Text != string.Empty))
            {
                result = txtString.Text;
            }
            this.Close();
        }
    }
}

Эта вещь дает мне исключение nullReferenceException (я знаю).

Как справиться с этой вещью? Я просто хочу открыть форму, написать текст и нажать кнопку, чтобы отправить данные обратно вызывающей стороне и закрыть форму.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 23 октября 2009

Вы устанавливаете свой результат до открытия диалогового окна. Попробуйте поменять местами две строчки кода так:

        frmStringLoader.ShowDialog();
        string test = frmStringLoader.Result;
1 голос
/ 23 октября 2009

Вы получаете результат, прежде чем показывать форму! Попробуйте

private void loadStringToolStripMenuItem_Click(object sender, EventArgs e)
    {
        StringLoader frmStringLoader = new StringLoader();
        frmStringLoader.ShowDialog();
        string test = frmStringLoader.Result;
        MessageBox.Show(test.ToString());
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...