iwannafly
路人甲
路人甲
  • 注册日期2005-12-03
  • 发帖数35
  • QQ
  • 铜币274枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:3027回复:9

c#制作Symbol选择对话框

楼主#
更多 发布于:2006-07-30 10:35
<P>现在要实现双击toccontrol中的某一层的symbol调出symbol选择对话框.</P>
<P>vb中有示例实现了类似于arcmap中的symbol选择对话框,用到了ISymbolSelector接口.</P>
<P>那么在c#中怎么实现呢?有相应的接口吗?</P>
喜欢0 评分0
hsghxm
路人甲
路人甲
  • 注册日期2004-10-27
  • 发帖数517
  • QQ4604052
  • 铜币1枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2006-07-30 16:41
<P>自己写个窗体了,在改变你所选择的图层的Symbol!不需要多少代码的,很快!</P>
MSN:hsghxm@163.com QQ:4604052 (很少用,最好别加) Email:hsghxm@163.com 我的BOLG:http://www.gisempire.com/blog/user1/864/index.htm
举报 回复(0) 喜欢(0)     评分
wheroy
路人甲
路人甲
  • 注册日期2004-09-04
  • 发帖数159
  • QQ
  • 铜币251枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2006-12-07 14:31
如果用ISymbolSelector接口 横简单,但是在纯Engine 开发是没有这个接口
举报 回复(0) 喜欢(0)     评分
hahaaluo
路人甲
路人甲
  • 注册日期2006-08-05
  • 发帖数146
  • QQ
  • 铜币591枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2006-12-08 21:31
<P>例子里有了,就看懂,然后是要学会VB转换到C#</P>
举报 回复(0) 喜欢(0)     评分
zhousky
论坛版主
论坛版主
  • 注册日期2003-08-01
  • 发帖数281
  • QQ
  • 铜币1027枚
  • 威望3点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2006-12-09 11:17
我们在AE中读取style(呵,不是serverstyle,也不是在AO中读的噢)符号库文件,在此基础上开发了类arcgis符号库管理器,如有兴趣,可以QQ联系:171567188,我发给你DEMO
不要看我噢
举报 回复(0) 喜欢(0)     评分
zhaoqinliu
外卖仔
外卖仔
  • 注册日期2005-04-18
  • 发帖数50
  • QQ
  • 铜币284枚
  • 威望0点
  • 贡献值0点
  • 银元0个
5楼#
发布于:2006-12-09 14:23
<P>你看的是AO的例子,在ENGINE中是没有这个接口的,不过这个例子转换成C#的代码如下:</P>
<P>private void axTOCCtl_OnDoubleClick(object sender, ESRI.ArcGIS.TOCControl.ITOCControlEvents_OnDoubleClickEvent e)<BR>  {<BR>   IBasicMap map = null;<BR>   object pOther = null;<BR>   object index = null;</P>
<P>   if (e.button==1)<BR>   {<BR>    m_TOCControl.HitTest(e.x, e.y, ref m_TocItem, ref map, ref m_TocLayer, ref pOther, ref index);<BR>    System.Drawing.Point pos=new System.Drawing.Point(e.x,e.y);<BR>    if (this.m_TocItem == esriTOCControlItem.esriTOCControlItemLegendClass)<BR>    {<BR>     ESRI.ArcGIS.Carto.ILegendClass pLC=new LegendClassClass();<BR>     ESRI.ArcGIS.Carto.ILegendGroup pLG=new LegendGroupClass();<BR>     if(pOther is ILegendGroup)<BR>     {<BR>      pLG=(ILegendGroup)pOther;<BR>     }</P>
<P>     pLC=pLG.get_Class((int)index);<BR>     ISymbol pSym;<BR>     pSym=pLC.Symbol;<BR>     ESRI.ArcGIS.DisplayUI.ISymbolSelector pSS=new ESRI.ArcGIS.DisplayUI.SymbolSelectorClass();<BR>     bool bOK=false;<BR>     pSS.AddSymbol(pSym);<BR>     bOK=pSS.SelectSymbol(0);<BR>     if (bOK)<BR>     {<BR>      pLC.Symbol=pSS.GetSymbolAt(0);<BR>     }<BR>     this.axMapCtl.ActiveView.Refresh();<BR>     this.axTOCCtl.Refresh();<BR>    }<BR>   }</P>
<P>  }</P>
举报 回复(0) 喜欢(0)     评分
gzstyxb
路人甲
路人甲
  • 注册日期2004-09-22
  • 发帖数358
  • QQ
  • 铜币1045枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2006-12-11 09:45
<P>大家都在写这样的代码,重复劳动啊。。。。 唉,如果能跟AicGIS似的全部都实现为COM,不就可以大家“互通有无”了啊,也不需要关你是C#,VC,VB。。。</P>
<P>COM是好东西啊。</P>
由爱故生忧, 由爱故生怖. 若离于爱者, 无忧亦无怖.
举报 回复(0) 喜欢(0)     评分
po2008
路人甲
路人甲
  • 注册日期2006-08-08
  • 发帖数15
  • QQ
  • 铜币179枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2006-12-19 11:28
是呀,我强烈建议资源共享<img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em04.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" /><img src="images/post/smile/dvbbs/em08.gif" />
举报 回复(0) 喜欢(0)     评分
zhousky
论坛版主
论坛版主
  • 注册日期2003-08-01
  • 发帖数281
  • QQ
  • 铜币1027枚
  • 威望3点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2006-12-22 11:27
我们已经做出来了,基于.NET开发的.可QQ:171567188联系
不要看我噢
举报 回复(0) 喜欢(0)     评分
linton_lau
路人甲
路人甲
  • 注册日期2005-04-19
  • 发帖数30
  • QQ
  • 铜币277枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2007-01-10 09:54
学习...
举报 回复(0) 喜欢(0)     评分
游客

返回顶部