从UserControl实例化表单是不好的做法吗?

时间:2012-11-09 13:36:10

标签: c# compact-framework .net-2.0

我正在使用.NET CF Framework构建应用程序,我遇到了一种情况,我希望向用户显示一个自定义对话框。

我的解决方案是创建一个简单的表单,其中包含用于选择的单选按钮和一个按钮。单击此按钮时,将选定的单选按钮值保存到公共属性并关闭表单。

UserControl在表单上调用ShowDialog后,检查公共属性以了解用户选择的选项。

这完美无缺。我只是想知道这是不好的做法,如果我要让自己陷入困境,不知何故这样做。 UserControl应该创建一个Form似乎很奇怪。

是否有更好的方法可以在UserControl中创建自定义对话框?

2 个答案:

答案 0 :(得分:1)

绝对没有错。它与从UserControl调用MessageBox.Show()基本相同。

是的,将结果作为公共财产来访问就是这样做的。

我猜这将是一个对话?如果您有多个“退出”选项,请考虑使用DialogResult - 确定,取消等

答案 1 :(得分:1)

简短回答:不,它不应该给你任何问题。

答案很长:随着应用程序的增长,直接从UserControl打开Form这样的事情可能会给你一些意大利面条代码。如果您编写的应用程序大于几千行代码,那么文件后面的Form和UserControl代码通常应该是空的。它们不应包含任何业务逻辑,也不应包含任何UI逻辑。看看Passive View如何实现这一目标的模式。