Как передать значение в динамическую формуC#

Место общения программистов C#
Ответить
Anonymous
 Как передать значение в динамическую форму

Сообщение Anonymous »

Мне нужно решить задачу передачи значения с помощью динамической формы, ниже приведено объяснение.
  • MainForm с меню и строкой состояния в нижней части окон. Строка состояния (lbBulkForm) указывает на активную форму, а (lbBulkField) указывает на поле запроса. Изображение1
  • В качестве примера заполню грузовой манифест. При заполнении поля страны (tbCountryID) возьмите его из основных данных страны.
  • При нажатии кнопки «Получить» значение строки состояния обновления на MainForm (lbBulkForm) становится активным, имя формы (Form2) и поле для заполнения (textBox3). Изображение 2 и подобное при открытии адресной книги (форма 1) Изображение 3
  • Все еще на изображении номер 2, когда форма 3 (основные данные страны) открывается, инициализируется и загружается строка состояния из строки состояния главного меню. originForm(Form2) и originField(textBox3).
  • Отправить обратно в исходную форму на основе значения строки состояния originForm (Form2) и поля (textBox3).
Мне удалось статически отправить обратно значение в исходную форму и поле, и мне нужна помощь в решении, чтобы сделать это динамически. Ниже приведен исходный код каждой формы.
MainForm_code

Код: Выделить всё

namespace DynamicPassingValue
{
public partial class MainForm : Form
{
public static MainForm Instance;
public MainForm()
{
InitializeComponent();
Instance = this;
}
private void btAddressBook_Click(object sender, EventArgs e)
{
Form1 form = new Form1();
form.Show();
}
private void btCargoManifest_Click(object sender, EventArgs e)
{
Form2 form = new Form2();
form.Show();
}
private void btCountryMaster_Click(object sender, EventArgs e)
{
Form3 form = new Form3();
form.Show();
}
}
}
Код Form2

Код: Выделить всё

namespace DynamicPassingValue
{

public partial class Form2 : Form
{
public static Form2 Instance;
public Form2()
{
InitializeComponent();
Instance = this;
}
private void btGet_Click(object sender, EventArgs e)
{
//Get Active Form
var lastOpenedForm = Application.OpenForms.Cast().Last();
MainForm form = (MainForm)Application.OpenForms["MainForm"];

//Update status bar on bottom of MainForm and fields to be filled in
form.lbBulkForm.Text = lastOpenedForm.Name;
form.lbBulkField.Text = textBox3.Name;

Form3 nform = new Form3();
nform.Show();
}
}
}
Код Form3

Код: Выделить всё

namespace DynamicPassingValue
{
public partial class Form3 : Form
{
public static Form3 Instance;
public string originForm;
public string originField;
public Form3()
{
InitializeComponent();
Instance = this;
originForm = MainForm.Instance.lbBulkForm.Text;
originField = MainForm.Instance.lbBulkField.Text;
}
private void Form3_Load(object sender, EventArgs e)
{
label1.Text = originForm;
label2.Text = originField;
}
private void btSendBack_Click(object sender, EventArgs e)
{
//Form1.Instance.Controls[originField].Text = tbCountryID.Text;     /Value success passing to form1
//Form2.Instance.Controls[originField].Text = tbCountryID.Text;     //Value success passing to form2

// Need help solve passing value to origin form dynamically
//NeedSomeCommandHereToMakeDynamically Controls[originField].Text = tbCountryID.Text;
}
}
}
Код Form1_ аналогичен коду Form2
Примечание. Поле свойств, которое должно быть заполнено в каждой форме, модификатор изменен на Public.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... namic-form
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»