Вопрос по c# – Как передать данные текстового поля между двумя формами?

0

Как отправить значение текстового поля в текстовое поле между двумя формами без Show () / ShowDialog () по кнопке? Я хочу, чтобы textBox получал значение без открытой формы.

Ваш Ответ

3   ответа
0

Я не знаю, что именно вы имеете в виду, говоря "без Show () / ShowDialog ()", но это все равно не имеет значения, или я просто здесь далее предположу, что у вас открыты оба окна (не имеет значения, как Вы достигли этого).

Вы хотели бы избежать сильной связи между двумя формами, особенно в деталях реализации, таких как текстовое поле и т. Д.delegates а такжеevents инициировать «отправку» данных между вашими двумя формами. Затем вы можете легко передать данные о событии и вашsubscribed другая форма (или любой другой объект на самом деле) не знает точных деталей реализации вашей формы, она знает только данные, которые она получит через делегата (событие). Я не собираюсь публиковать здесь весь код, потому что он уже хорошо объяснен по следующему адресу:http://www.codeproject.com/Articles/17371/Passing-Data-between-Windows-Forms .

1

Для доступа к данным текстового поля вам необходимо использовать: textBox1.Text

форма - это объект, поэтому вы можете определить метод, который обновляет значение текстового поля (вы можете открыть текстовое поле с помощью общедоступного метода доступа)

1

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

Чтобы дочерняя форма отправляла данные в родительскую форму, дочерняя форма должна создать свойство (оно должно быть только получателем) с данными, которые оно хочет отправить в родительскую форму. Затем следует создать событие (или использовать существующийForm событие), на которое родитель может подписаться.

Пример:

namespace PassingDataExample
{
    public partial class ParentForm : Form
    {
        public ParentForm()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ChildForm child = new ChildForm();
            child.DataFromParent = "hello world";

            child.FormSubmitted += (sender2, arg) =>
            {
                child.Close();

                string dataFromChild = child.DataFromChild;
            };

            child.Show();
        }
    }
}

namespace PassingDataExample
{
    public partial class ChildForm : Form
    {
        public ChildForm()
        {
            InitializeComponent();
        }

        public string DataFromParent { get; set; }

        public string DataFromChild { get; private set; }

        public event EventHandler FormSubmitted;

        private void button1_Click(object sender, EventArgs e)
        {
            DataFromChild = "Hi there!";

            if (FormSubmitted != null)
                FormSubmitted(this, null);
        }
    }
}

Похожие вопросы