Head First C# 中文版 第13章 控件和图形 page580

来源:互联网 发布:直播软件代码 编辑:程序博客网 时间:2024/06/03 20:41

 

渲染器使用BeeControl来在你的窗体上绘制会动的蜜蜂


 

有了一个BeeControl和两个窗体,你现在只需要一种方式来放置蜜蜂,把它们从一个窗体移动到另一个窗体,并记录其存在。你也需要在FiledForm上放置花朵,不过花朵不会动,这就很简单了。这些代码都可以放入一个新类中,Renderer。下面是该类的职责:


 

①统计数据窗体将会是蜂巢窗体和田园窗体的父窗体


 

向项目中添加两个窗体,HiveFormFiledForm。然后在主窗体的构造方法中添加代码来显示其子窗体并告知Windows统计数据窗体是它们的所有者。


 

 

 

子窗体会随着父窗体一起最小化。


 

②渲染器中含有对World和每个子窗体的引用


 

渲染器需要知道每只蜜蜂和每朵花的位置,所以它需要World的引用。他需要在子窗体中移除和添加控件,所以也需要子窗体的引用:


 

 

 

③渲染器使用字典来记录控件


 

WorldList来记录花朵和蜜蜂。而渲染器既需要记录花朵和蜜蜂也需要记录它们对应于哪一个BeeControlPictureBox--或者,若没有找到对应的控件就需要创建一个。所以这就是使用字典的绝佳机会了。所以Renderer类中还需要两个字段: