C#WinForm;将控件组传递给另一个类

C#WinForm;将控件组传递给另一个类,c#,winforms,tabcontrol,C#,Winforms,Tabcontrol,这是我的剧本。。。 我有一个winForm tabControl,每个选项卡上都有各种字段(每个选项卡都有不同的字段)。当用户单击“生成”按钮时,应该从tabControl的选项卡传递控件,以便调用的函数可以根据传递的控件信息创建电子邮件。每个选项卡都是不同的电子邮件模板。可以从4个不同的按钮调用该方法,每个按钮位于不同的tabControl页面上,每个tabControl具有不同的字段 我遇到的问题是,我无法找到调用/传递这些控件的合适方法。因为直到运行后才知道按下了什么tabControl按

这是我的剧本。。。 我有一个winForm tabControl,每个选项卡上都有各种字段(每个选项卡都有不同的字段)。当用户单击“生成”按钮时,应该从tabControl的选项卡传递控件,以便调用的函数可以根据传递的控件信息创建电子邮件。每个选项卡都是不同的电子邮件模板。可以从4个不同的按钮调用该方法,每个按钮位于不同的tabControl页面上,每个tabControl具有不同的字段

我遇到的问题是,我无法找到调用/传递这些控件的合适方法。因为直到运行后才知道按下了什么tabControl按钮,所以我试图创建一个抽象方法来接受这些控件,因为每个选项卡都有一组不同的控件


有什么想法吗?

正如其他人提到的,你可以作弊并尝试使用

tabControl.Controls
为了快速而肮脏的修复

如果你想要一些未来可行的东西,以及让你接触到一些更好的设计实践,我建议你另一种选择。创建一个
EmailUserControl
,它保存电子邮件的所有表单字段。将该用户控件放置在选项卡上,而不是所有单独的字段上。然后在用户控件上提供一个方法,该方法生成所需的电子邮件,并考虑所有字段,然后您可以传递实际的电子邮件,而不是您可以用来创建它的所有单个部分


当然,这种设计还有其他改进,但这对你来说是一个很好的机会,让你的脚湿透,尝试一些更好的东西。随着您对
UserControl
s的想法越来越熟悉,您将认识到改进控件设计的更多机会:

我在设计方面把自己搞糊涂了。我已经为每个选项卡创建了一个类,可以说是选项卡“类”。我决定为每个选项卡创建一个用户控件,并使该用户控件的类充当我刚才描述的类。谢谢你的帮助!令人惊叹的!很高兴我能帮忙。:)