Что такое «умный и прямой» способ установки значений переменной Form из другой подформы.
Скажем, у меня есть mainForm, которая содержит myVar (например, номер сетевого порта) и settingsButton, которая при нажатии показывает другую форму settingsForm, которая предназначена для установки myVar ....
так как settingsForm не может вернуть ничего, кроме DialogResult, как я могу этого достичь.
Я использовал его для реализации, передавая мгновенный mainForm в settingsForm в своем конструкторе для доступа к своим членам данных следующим образом:
//////mainForm.h:
#include "settingsForm.h"
...
ref class mainForm: puplic Form
{
puplic:
int myVar;
private: void settingsButton_Click(Object^ sender, EventArgs^ e)
{
(gcnew settingsForm(this))->ShowDialog();
}
...
};
....
////////settingsForm.h
...
ref class mainForm; //forward declaration to avoid circular dependency
ref class settingsForm:public Form
{
mainForm^ mf;
settingsForm(mainForm form)
{
....
mf=form;
}
void okButton_click(Object^ sender, EventArgs^ e); //definition in the cpp file
...
};
///////settingsForm.cpp
...
void settingsForm::okButton_click(Object^ sender, EventArgs^ e)
{
mf->myVar= someValue;
}
...