近期在作GP工具相關的功能,須要獲取到圖層並用ComboBox列出,好比圖層更新:html
開始用了根據圖層名獲取圖層,但這樣有個弊端,遇到不一樣文件夾的相同圖層名稱的圖層gg了。原本想利用圖層名+路徑來區分,用IDataLayer接口,後來遇到註記圖層,這個接口就很差用了,會出現異常。ide
其中的一句代碼會出現異常,而且圖層也分爲shp,gdb等,因此這個方法不可取。工具
後來絞盡腦汁,終於想出用索引的方法來獲取圖層。將全部圖層放到list集合中,固然獲取圖層要遍歷,有些是在圖層組裏面,這樣獲得的集合裏面的圖層時有順序的,在將圖層添加到list集合的同時,也要將圖層名添加到ComboBox中,這樣ComboBox裏面的圖層名列表的順序跟list集合裏的圖層順序是一致的,當你點擊ComboBox時,能獲取到點擊的索引,這個索引就是該圖層在list列表中的索引。.net
思路就是這樣。htm
一些或許有價值的參考:blog
https://zhidao.baidu.com/question/810569039437750732.html索引
http://blog.csdn.net/longronggis/article/details/7953117接口
http://blog.csdn.net/qq_35040828/article/details/73522136get
https://gis.stackexchange.com/questions/43620/how-do-i-reach-a-layer-inside-a-grouplayerio