jacklimin
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数8
  • QQ
  • 铜币137枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:5925回复:17

mo+VB.NET讨论

楼主#
更多 发布于:2004-10-21 11:02
<P><FONT size=4><IMG src="http://www.gisempire.com/bbs/Skins/default/topicface/face150.gif"><IMG src="http://www.gisempire.com/bbs/Skins/default/topicface/face150.gif"><IMG src="http://www.gisempire.com/bbs/Skins/default/topicface/face150.gif">用vb.net开发的大哥、大姐把大家的经验发上来,一块儿学习啊!</FONT></P>
喜欢0 评分0
jacklimin
路人甲
路人甲
  • 注册日期2004-09-02
  • 发帖数8
  • QQ
  • 铜币137枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2004-10-21 11:12
<P>自己先发一条。在图层显示消隐时用 AxMap1.Refresh()  没法刷新地图,发现   AxMap1下还有一个CtlRefresh。因为.net中<FONT size=2>ActiveX<FONT>控件在</FONT><FONT face=Arial>.NET</FONT><FONT>里的应用就是通过利用</FONT><FONT face=Arial>AxHost</FONT><FONT>类来实现的,Refresh是从AxHost继承来的,CtlRefresh才是MapObjects<FONT size=2>自己的</FONT><FONT face=Arial size=2>Refresh</FONT><FONT size=2>方法。同理其它“Ctl<FONT>”</FONT><FONT size=2>的前缀也是区分本身方法和继承方法的标志。</FONT></FONT></FONT></FONT></P><P><FONT size=2>  '0图层消隐显示</FONT></P><P>Dim layer As ESRI.MapObjects2.Core.MapLayer
        If Me.AxMap1.Layers.Count >= 1 Then</P><P>layer = CType(AxMap1.Layers.Item(0), ESRI.MapObjects2.Core.MapLayer)
layer.Visible = Not layer.Visible
Me.AxMap1.CtlRefresh()      </P><P>  Else
            MsgBox("没有图层")
        End If</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
2楼#
发布于:2004-10-21 12:05
现在没做接个开发,先支持下兄台
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
berush
路人甲
路人甲
  • 注册日期2003-12-01
  • 发帖数158
  • QQ
  • 铜币622枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-10-21 19:13
vb.net与c#都是基于.netframework开发,vb.net遇到的问题 C#基本上也会遇到 !
举报 回复(0) 喜欢(0)     评分
lingangyuyu
路人甲
路人甲
  • 注册日期2004-10-22
  • 发帖数15
  • QQ
  • 铜币191枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-10-22 13:43
<P>这个东西实在不好说,我还是新手,请大哥大姐原谅。</P><P>    vb是个比较好的开发工具,调用refresh方法后的一系列事件如下所示:</P><P>        1、触发ONBeforelayerdraw事件</P><P>       2、层集按索引相反顺序调出各个图层。</P><P>       3、触发Onafterlayerdraw事件</P><P>        4、触发Onbeforetrackinglayerdraw事件</P><P>       5、如果在trackinglayer中存在Geoevent,则画出这些Geoevent对象</P><P>     6、触发Onaftertackinglayerdraw事件。</P>
举报 回复(0) 喜欢(0)     评分
xyq
xyq
路人甲
路人甲
  • 注册日期2004-06-20
  • 发帖数6
  • QQ
  • 铜币111枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2004-11-17 20:52
<P>在vb.net里面开发的效率好像不及vb的效率</P><P>我碰到这样一个问题</P><P>在vb.net里面的fields 为什么不是集合呢(在vb里面是),比如不能这样用:</P><P>dim fld as mapobjects2.field</P><P>dim recs as mapobjects2.recordsets</P><P>dim lyr as mapobjects.maplayer</P><P>dim inti as int16</P><P>for inti=0 to axmap1.layers.count-1</P><P>     for each fld in lyr.records.fields</P><P>       .........</P><P>       ........</P><P>  next</P><P>next</P><P>其中for each fld in lyr.records.fields就会出问题,提示不是集合,我就感到奇怪,它明明是集合呀?为什么不能用呢,而且在vb里面可是能够用的阿??求助阿,把我弊死了阿</P>
举报 回复(0) 喜欢(0)     评分
berush
路人甲
路人甲
  • 注册日期2003-12-01
  • 发帖数158
  • QQ
  • 铜币622枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2004-11-18 11:44
<P>vb中的集合与.net中的集合不一样,</P><P>比如.net的典型集合ArraryList,必须有提供一个G开头的接口(忘记怎么拼了)。</P><P>如果你想遍历fields取得value就得使用  fld.item("name"),其中name就是属性表中的字段名。</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
7楼#
发布于:2004-11-18 11:54
<P>回头看看这里,这个帖子真是很有必要长期继续下去,给大家来个问题大终结</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
GIIWOO
路人甲
路人甲
  • 注册日期2004-08-09
  • 发帖数18
  • QQ
  • 铜币205枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2004-11-18 20:51
   大家用mo+vb.net的时候有没有经常受“未将对象引用设置到对象实例”的困扰?如何解决的?
举报 回复(0) 喜欢(0)     评分
alex_zl
路人甲
路人甲
  • 注册日期2003-08-25
  • 发帖数54
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2004-11-19 21:05
.Net和MO之间有点问题,到2.3都没有完全解决,建议直接用ArcEngine,MO慢慢不受重视,可以被淘汰了.
举报 回复(0) 喜欢(0)     评分
上一页
游客

返回顶部