- 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();
}
}
}
Код: Выделить всё
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();
}
}
}
Код: Выделить всё
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;
}
}
}
Примечание. Поле свойств, которое должно быть заполнено в каждой форме, модификатор изменен на Public.>
Подробнее здесь: https://stackoverflow.com/questions/798 ... namic-form
Мобильная версия