MR.alaa Ответов: 2

Передать значение при закрытии формы


Привет всем
у меня есть две формы в сформировать у меня есть кнопка с текстовым полем, которая открывает другую форму с видом сетки, где я добавляю некоторые значения и получаю сумму этих значений в текстовом поле мне нужно вернуть сумму текстового поля в форме B в текстовое поле в форме A ?? как это можно сделать ? я использую c# .
я пробую каждый код, но получаю это значение в форме а

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

этот.ReturnValue1 = txttotal. Text;
// этот.ReturnValue2 = DateTime. Now. ToString (); / / пример
этот.DialogResult = DialogResult.ОК;
этот.Закрывать();

2 Ответов

Рейтинг:
9

Karthik_Mahalingam

попробуйте это сделать, обратитесь к комментариям в строке

Форма 2

public partial class Form2 : Form
  {
      public string SumValue { get; set; } // create a property in form 2
      private void textBox1_TextChanged(object sender, EventArgs e) // use TextChanged event from properties window
      {
          SumValue = textBox1.Text;
      }


Форма 1

public partial class Form1 : Form
   {
       private void button1_Click(object sender, EventArgs e)
       {
           Form2 objForm2 = new Form2();
           objForm2.ShowDialog();
           this.textBox1.Text = objForm2.SumValue; // read the value from form2

       }


MR.alaa

в форме 1 какую кнопку нажать ничего не нажимать она должна получить sumvalue формы 2 при закрытии формы 2 или при обновлении формы 1

Karthik_Mahalingam

ладно, подожди, я придумаю решение.

MR.alaa

окей

Karthik_Mahalingam

попробовать это

private void Form2_FormClosing(отправитель объекта, FormClosingEventArgs e)
{

foreach (форма f в приложении.OpenForms)
{
если (f.Name = = " Форма 1")
{
(Ф как форму form1).текстовое поле textbox1.Text = это.текстовое поле textbox1.Текст;
}
}

}

записка: сделайте текстовое поле в форме 1 следующим общественный модификатор

MR.alaa

Спасибо сработало успешно

Karthik_Mahalingam

добро пожаловать Алаа

MR.alaa

вы всегда полезны большое спасибо за вас Karthik Bangalore

Karthik_Mahalingam

:)

Рейтинг:
1

OriginalGriff

Да - есть несколько способов, в зависимости от того, когда вы хотите его вернуть.
Если вы используете ShowDialog для отображения второй формы, добавьте в нее свойство и прочтите его обратно после закрытия формы.
Если вы хотите обновить" основную " форму, не закрывая дочернюю, используйте событие: Передача информации между двумя формами, Часть 2: Ребенок-Родитель[^]


MR.alaa

со мной это не работает !! поскольку у меня есть данные, которые я передаю в форму 2, и мне нужно получить новые разные данные, наложить их нужно в событии form close, а затем передать значения в первую форму, которую я объявляю публичной переменной, но как обновить форму на дочернем close с новыми данными ??

OriginalGriff

Не объявляйте общедоступные переменные! Плохая идея...
Как вы показываете новую форму? Ты называешь шоу или метода showdialog?