从另一个子表单设置一些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;
}
...
答案 0 :(得分:0)
您可以使用事件或共享区域在它们之间交换数据。 但我认为你自己的方式简单而且更好。 你为什么要寻找另一种方式?