有个问题搞的我很别扭
有个问题搞的我很别扭。在弹出的对话窗体中有一个ListBox控件,当回到主窗体时候,我想从主窗体中访问对话窗体中的ListBox,怎么做?如果把ListBox设置成public 或者 internal ,微软不推荐这么做。怎么办?
我是这样解决,我另外写了一个公有属性,通过它来访问私有的ListBox,不知道合理不合理??
private ListBox UserList
public ListBox UList
{
get
{
return this.UserList;
}
set
{
this.UserList = value;
}
}
问题点数:10、回复次数:4Top
1 楼HeddaZ(大飞飞)回复于 2006-12-01 08:28:56 得分 0
用全局参数传呗~~~~
其实微软也不建议,你的应用有需求,他只是不建议而已,又不是不能Top
2 楼flyforlove(吾将远去)回复于 2006-12-01 08:58:55 得分 0
一般情况下因为ListBox是窗体的一个子控件,所以它不希望,在别的窗体对它有很高的访问权。
这是oop的封装性所至。
如果你开放了ListBox,那么等于把ListBox的所有功能都暴露了,
按照最小程度的按需索求,也就是说你只需要LIstBox里的数据的话,就另外写一个方法,只开放数据,其他的就不要开放了。Top
3 楼Tenner(BE.Tenner)回复于 2006-12-01 09:51:19 得分 0
写一个public方法,只实现你想要的功能Top
4 楼flyforlove(吾将远去)回复于 2006-12-01 14:52:24 得分 0
还有一种方式就是使用委托,
你不就是想在子窗口返回后,把数据给主窗体么,那就在主窗体里写一个委托方法,委托给子窗体,子窗体执行退出的时候,执行一下委托方法就可以了。Top





