C# 在哪里可以找到关于泡泡的好教程?
我是C#新手,希望允许Windows窗体相互通信。我知道,但这没有多大帮助。我学习泡泡有哪些好方法C# 在哪里可以找到关于泡泡的好教程?,c#,winforms,event-bubbling,C#,Winforms,Event Bubbling,我是C#新手,希望允许Windows窗体相互通信。我知道,但这没有多大帮助。我学习泡泡有哪些好方法 编辑:我希望在用户单击编辑->首选项时显示/创建一个选项表单。然后,我希望将用户在选项表单中更改的设置中继到主表单 您没有这么多的声明,但是主表单也是包含编辑->首选项菜单的表单吗?如果是这样,那么您已经处于代码中的正确位置 // This is the event handler in the main form private void mnuEditPreferencesClicked...
编辑:我希望在用户单击编辑->首选项时显示/创建一个选项表单。然后,我希望将用户在选项表单中更改的设置中继到主表单 您没有这么多的声明,但是主表单也是包含编辑->首选项菜单的表单吗?如果是这样,那么您已经处于代码中的正确位置
// This is the event handler in the main form
private void mnuEditPreferencesClicked...
{
FrmPreferences frmPreferences = new FrmPreferences();
frmPreferences.ShowDialog(this);
// Preferences saved, implement changes to main form here
}
如果首选项窗体不是从主窗体生成的,则在首选项窗体关闭时,让主窗体以这种方式处理事件。两种方法:
在首选项窗体上放置属性,并在用户单击“确定”时从主窗体访问它们
if (preferenceForm.ShowDialog() == DialogResult.OK)
{
this.Color = preferenceForm.UserSelectedColor;
//etc...
}
从主窗体向首选项窗体发送一个委托,并让首选项窗体通过适当的更改调用它
class FormSettings
{
object Color {get, set}
}
class MainForm
{
...
void ChangeSettings(FormSettings newSettings)
{ ... }
void EditPreferences_Click(...)
{
...
EditPreferencesForm editPreferences = new EditPreferencesForm(this.ChangeSettings)
editPreferences.ShowDialog();
}
}
class EditPreferencesForm
{
...
ChangeSettingsDelegate changeSettings;
FormSettings formSettings;
void OkButton_Click(...)
{
changeSettings(formSettings);
}
}
“冒泡”最常见于浏览器/DOM,而不是winforms。这就是你的意思吗?不,我在我的问题中添加了更多的信息来澄清。