如何得知UserControl是在设计时还是在运行时?
在VB6中编写ActiveX控件时,可以通过UserControl.Ambient.UserMode属性来判断控件是在设计时,还是运行时。
但在VB.Net中,即使控件是在设计时,DesignMode属性的值也总是False,MSDN中的说明是“设计模式指示器存储在 ISite 中;因此,如果 Component 没有与其关联的 ISite,则该属性始终为 false。”,看了它的示例,仍然是搞不懂。
但有些控件必须要知道是不是运行在DesignMode的,以MSFlexGrid为例:
1. 在设计时,所有的单元格都不会显示虚线框的,但在运行时,点击一个单元格后,就会显示出一个虚线框。
2. 设置Rows=10000,在设计时不用分配10000行所需内存,可以到运行时才分配内存。
这个问题困扰了我好几天了,我搜索了“.NET技术”社区中所有和“设计时”有关的帖子,都没有找到答案。
问题点数:100、回复次数:8Top
1 楼csdnabc(Weblog)回复于 2004-08-02 09:14:06 得分 0
UPTop
2 楼cbqtc1(燃烧的冰)回复于 2004-08-02 09:17:58 得分 50
你要区分这个有什么用呀.Top
3 楼csdnabc(Weblog)回复于 2004-08-02 10:06:36 得分 0
我想做一个网格控件,设置了Rows和Cols属性后,如果是在设计时,不必为单元格分配任何内存,而如果是在运行时,则需要定义一个数组,如Cells(Rows,Cols),这个数组可能很大,但在设计时根本没必要浪费这么多的内存。Top
4 楼csdnabc(Weblog)回复于 2004-08-02 10:14:30 得分 0
我看了MS的技术支持文章,试过了但没有解决问题:
http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3B839202Top
5 楼weiljj()回复于 2004-08-02 10:40:53 得分 50
UPTop
6 楼weiljj()回复于 2004-08-02 10:41:23 得分 0
也感興趣.Top
7 楼csdnabc(Weblog)回复于 2004-08-02 10:42:51 得分 0
自己解决了。Top
8 楼weiljj()回复于 2004-08-03 10:15:29 得分 0
你也說一下是如何解決的呀,也不枉我頂一場.Top




