0

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

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

有任何想法吗?

4

1 回答 1

1

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

tabControl.Controls

快速而肮脏的修复。

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

当然,该设计还可以进行其他改进,但这是一个很好的机会让您弄湿自己的脚并尝试一些更好的东西。随着您对 s 的概念越来越熟悉UserControl,您将认识到自己改进控件设计的更多机会。:)

于 2009-07-30T13:08:17.943 回答