交叉 class 通信
Cross-class communication
我正在 运行 使用最多 UI 元素的主 WinForm,然后在选择“添加”按钮时调用“添加”表单。它应该接收输入,并在接受后将其发送回 WinForm。
当您单击 class 上的 "Add" 按钮时,此代码 运行s:
public void addButton_Click(object sender, EventArgs e)
{
AddView newadd = new AddView();
newadd.Show();
}
此代码(也在主 class 中)应该 运行 基于 AddView 中的按钮:
public void AddDashObject(string dashName, string dashIdentifier, int dashFunction, string dashFunctionInfo, int dashVerbosity)
{
DashObject tmp = new DashObject("","",0,"",0);
tmp.DashName = dashName;
tmp.DashIdentifier = dashIdentifier;
tmp.DashFunction = dashFunction;
tmp.DashFunctionInfo = dashFunctionInfo;
tmp.DashVerbosity = dashVerbosity;
dashloaded.Add(tmp);
ReloadDashObjects();
}
我不太确定如何在表单之间进行通信 - 我可以使用在主 class 中创建的类型以及方法,但我很确定我正在创建一个单独的实例.如何与现有的通信?
MainView mnfrm = new MainView();
MainView.DashObject tmp = new MainView.DashObject("","",0,"",1); // Defaults
private void button1_Click(object sender, EventArgs e)
{
mnfrm.dashloaded.Add(tmp); // Add the default DashObject to MainView's currently loaded DashObjects
mnfrm.ReloadDashObjects(); // Reload the list
}
不确定如何进行此操作 - 有什么建议吗?
由于“添加”对话框应该是模态的,因此分离的方法是仅关闭状态为“确定”的对话框。 IE。表单只是一个输入控件,实际上 "do" 什么都没有。
那么主窗体可以:
1) 检查对话框是如何在 ShowDialog() 之后立即关闭的,
2) 在处理之前调用一些 GetResult() 函数从添加表单中获取值。
3) 调用实际创建和重新加载 DashObject 的业务逻辑。
我正在 运行 使用最多 UI 元素的主 WinForm,然后在选择“添加”按钮时调用“添加”表单。它应该接收输入,并在接受后将其发送回 WinForm。
当您单击 class 上的 "Add" 按钮时,此代码 运行s:
public void addButton_Click(object sender, EventArgs e)
{
AddView newadd = new AddView();
newadd.Show();
}
此代码(也在主 class 中)应该 运行 基于 AddView 中的按钮:
public void AddDashObject(string dashName, string dashIdentifier, int dashFunction, string dashFunctionInfo, int dashVerbosity)
{
DashObject tmp = new DashObject("","",0,"",0);
tmp.DashName = dashName;
tmp.DashIdentifier = dashIdentifier;
tmp.DashFunction = dashFunction;
tmp.DashFunctionInfo = dashFunctionInfo;
tmp.DashVerbosity = dashVerbosity;
dashloaded.Add(tmp);
ReloadDashObjects();
}
我不太确定如何在表单之间进行通信 - 我可以使用在主 class 中创建的类型以及方法,但我很确定我正在创建一个单独的实例.如何与现有的通信?
MainView mnfrm = new MainView();
MainView.DashObject tmp = new MainView.DashObject("","",0,"",1); // Defaults
private void button1_Click(object sender, EventArgs e)
{
mnfrm.dashloaded.Add(tmp); // Add the default DashObject to MainView's currently loaded DashObjects
mnfrm.ReloadDashObjects(); // Reload the list
}
不确定如何进行此操作 - 有什么建议吗?
由于“添加”对话框应该是模态的,因此分离的方法是仅关闭状态为“确定”的对话框。 IE。表单只是一个输入控件,实际上 "do" 什么都没有。
那么主窗体可以:
1) 检查对话框是如何在 ShowDialog() 之后立即关闭的,
2) 在处理之前调用一些 GetResult() 函数从添加表单中获取值。
3) 调用实际创建和重新加载 DashObject 的业务逻辑。