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

时间:2009-07-30 12:57:26

标签: c# winforms tabcontrol

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

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

tabControl.Controls

快速而肮脏的修复。

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

当然,该设计还有其他改进,但这对你来说是一个很好的机会,你可以尝试一些更好的方法。随着您对UserControl的想法越来越熟悉,您将认识到自己改进控件设计的其他机会。 :)