为什么Compact-Framework中不支持MDI?

时间:2009-12-03 15:52:55

标签: compact-framework

我最近想要/认为我需要一个包含两个子表单的表单,根据用户对TreeNode的选择进行切换。

在搜索网页时,我发现this post说这需要是我设计中的一个缺陷。为什么呢?

为什么CF的多个对话框不好?我的使用场景不需要这个吗?

如果有支持并且可以使用它,你能指点我吗?

感谢。

2 个答案:

答案 0 :(得分:6)

CF不支持它,因为OS itself doesn't support MDI(请参阅链接页面中的备注部分)。

但是,通过使用UserControls代替Forms并将它们放在像“MDI Parent”表单上的Frame这样的容器中,可以很容易地伪造MDI。

你也可以使用Tab Control图案,每个“文档”都成为一个标签。

答案 1 :(得分:3)

除了ctacke的回答,请记住这一点,CF是我们都喜欢/讨厌的桌面窗口的一小部分,例如XP,Vista,Windows 7,包括服务器版本,即CF上的API调用是因为CF有限的资源,如内存,存储空间较小(我会拒绝将其定义为磁盘空间,因为CF上的区别模糊 - 即闪存RAM,SD卡,紧凑型闪存卡等等但没有硬盘任何形式!)和有限的连接(蓝牙和紧凑型闪存 - 根据我的经验),最后是一个有限的空间的小屏幕。

真的,在CF下进行编程,就像你在桌面Windows上可以做的一些事情一样,你不能在CF上做,因此对于CF你必须在盒子外思考,尽管有一个较小的API集。就像ctacke的回答一样,这是一种“假装”MDI的好方法。

希望这个答案可以帮助您理解为什么CF上不存在MDI, 最好的祝福, 汤姆。