<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_天道酬勤</title><subtitle type="text">博观而约取，厚积而薄发！</subtitle><id>http://feed.cnblogs.com/blog/u/69767/rss</id><updated>2012-01-13T05:36:07Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/69767/rss"/><entry><id>http://www.cnblogs.com/SunYu/archive/2012/01/13/2321517.html</id><title type="text">进程与线程（转载）</title><summary type="text">进程和线程是两个相对的概念，通常来说，一个进程可以定义程序的一个实例（Instance）。在Win32中，进程并不执行什么，它只是占据应用程序所使用的地址空间。为了让进程完成一定的工作，进程必须至少占有一个线程，正是这个线程负责包含进程地址空间中的代码。实际上，一个进程可以包含几个线程，它们可以同时执行进程地址空间中的代码。为了做到这一点，每个线程有自己的一组CPU寄存器和堆栈。每个进程中至少有一个线程在执行其地址空间中的代码。如果没有线程执行进程地址空间中的代码，进程也就没有继续存在的理由，系统将自动清除进程及其地址空间。多线程的实现原理 创建一个进程时，它的第一个线程称为主线程（Pr...</summary><published>2012-01-13T05:35:00Z</published><updated>2012-01-13T05:35:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2012/01/13/2321517.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2012/01/13/2321517.html"/><content type="html">&lt;p&gt;进程和线程是两个相对的概念，通常来说，一个进程可以定义程序的一个实例（Instan&lt;br /&gt;ce）。在Win32中，进程并不执行什么，它只是占据应用程序所使用的地址空间。为了让&lt;br /&gt;进程完成一定的工作，进程必须至少占有一个线程，正是这个线程负责包含进程地址空&lt;br /&gt;间中的代码。实际上，一个进程可以包含几个线程，它们可以同时执行进程地址空间中&lt;br /&gt;的代码。为了做到这一点，每个线程有自己的一组CPU寄存器和堆栈。每个进程中至少有&lt;br /&gt;一个线程在执行其地址空间中的代码。如果没有线程执行进程地址空间中的代码，进程&lt;br /&gt;也就没有继续存在的理由，系统将自动清除进程及其地址空间。&lt;/p&gt;&lt;p&gt;多线程的实现原理&lt;/p&gt;&lt;p&gt;创建一个进程时，它的第一个线程称为主线程（Primary &amp;nbsp; thread），由系统自动生成。&lt;br /&gt;然后可以由这个主线程生成额外的线程，而这些线程，又可以生成更多的线程。&lt;br /&gt;在运行一个多线程的程序时，从表面上看，这些线程似乎在同时运行。而实际情况并非&lt;br /&gt;如此，为了运行所有的这些线程，操作系统为每个独立线程安排一些CPU时间。单CPU操&lt;br /&gt;作系统以轮转方式向线程提供时间片（Quantum），每个线程在使用完时间片后交出控制&lt;br /&gt;，系统再将CPU时间片分配给下一个线程。由于每个时间片足够的短，这样就给人一种假&lt;br /&gt;象，好像这些线程在同时运行。创建额外线程的唯一目的就是尽可能地利用CPU时间。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;多线程的问题&lt;br /&gt;使用多线程编程可以给程序员带来很大的灵活性，同时也使原来需要复杂技巧才能解决&lt;br /&gt;的问题变得容易起来。但是，不应该人为地将编写的程序分成一些碎片，让这些碎片按&lt;br /&gt;各自的线程执行，这不是开发应用程序的正确方法。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;线程很有用，但当使用线程时，可能会在解决老问题的同时产生新问题。例如要开发一&lt;br /&gt;个字处理程序，并想让打印功能作为单独的线程自己执行。这听起来是很好的主意，因&lt;br /&gt;为在打印时，用户可立即返回，开始编辑文档。但这样一来，在该文档被打印时文档中&lt;br /&gt;的数据就有可能被修改，打印的结果就不再是所期望的内容。也许最好不要把打印功能&lt;br /&gt;放在单独的线程中，不过如果一定要用多线程的话，也可以考虑用下面的方法解决：第&lt;br /&gt;一种方法是锁定正在打印的文档，让用户编辑其他的文档，这样在结束打印之前，该文&lt;br /&gt;档不会作任何修改；另一个方法可能更有效一些，即可以把该文档拷贝到一个临时文件&lt;br /&gt;中，打印这个临时文件的内容，同时允许用户对原来的文档进行修改。当包含文档的临&lt;br /&gt;时文件打印完成时，再删去这个临时文件。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;通过上面的分析可以看出，多线程在帮助解决问题的同时也可能带来新问题。因此有必&lt;br /&gt;要弄清楚，什么时候需要创建多线程，什么时候不需要多线程。总的来说，多线程往往&lt;br /&gt;用于在前台操作的同时还需要进行后台的计算或逻辑判断的情况，而对于GUI（图形用户&lt;br /&gt;接口），除了开发MDI（多文档界面）应用程序外，应尽量不使用多线程。&lt;br /&gt;线程的分类&lt;/p&gt;&lt;p&gt;在MFC中，线程被分为两类，即工作线程和用户界面线程。如果一个线程只完成后台计算&lt;br /&gt;，不需要和用户交互，那么可以使用工作线程；如果需要创建一个处理用户界面的线程&lt;br /&gt;，则应使用用户界面线程。这两者的主要区别在于，MFC框架会给用户界面线程增加一个&lt;br /&gt;消息循环，这样用户界面线程就可以处理自己消息队列中的消息。这样看来，如果需要&lt;br /&gt;在后台作一些简单的计算（如对电子表格的重算），则首先应考虑使用工作线程，而当&lt;br /&gt;后台线程需要处理比较复杂的任务，确切地说，当后台线程的执行过程会随着实际情况&lt;br /&gt;的不同而改变时，就应该使用用户界面线程，以便能对不同的消息作出响应。&lt;/p&gt;&lt;p&gt;&lt;br /&gt;线程的优先级&lt;br /&gt;当系统需要同时执行多个进程或多个线程时，有时会需要指定线程的优先级。线程的优&lt;br /&gt;先级一般是指这个线程的基优先级，即线程相对于本进程的相对优先级和包含此线程的&lt;br /&gt;进程的优先级的结合。操作系统以优先级为基础安排所有的活动线程，系统的每一个线&lt;br /&gt;程都被分配了一个优先级，优先级的范围从0到31。运行时，系统简单地给第一个优先级&lt;br /&gt;为31的线程分配CPU时间，在该线程的时间片结束后，系统给下一个优先级为31的线程分&lt;br /&gt;配CPU时间。当没有优先级为31的线程时，系统将开始给优先级为30的线程分配CPU时间&lt;br /&gt;，以此类推。除了程序员在程序中改变线程的优先级外，有时程序在执行过程中系统也&lt;br /&gt;会自动地动态改变线程的优先级，这是为了保证系统对终端用户的高度响应性。比如用&lt;br /&gt;户按了键盘上的某个键时，系统就会临时将处理WM_KEYDOWN消息的线程的优先级提高2到&lt;br /&gt;3。CPU按一个完整的时间片执行线程，当时间片执行完毕后，系统将该线程的优先级减&lt;br /&gt;1。&lt;/p&gt;&lt;p&gt;线程的同步&lt;br /&gt;在使用多线程编程时，还有一个非常重要的问题就是线程同步。所谓线程同步是指线程&lt;br /&gt;之间在相互通信时避免破坏各自数据的能力。同步问题是由前面说到的Win32系统的CPU&lt;br /&gt;时间片分配方式引起的。虽然在某一时刻，只有一个线程占用CPU（单CPU时）时间，但&lt;br /&gt;是没有办法知道在什么时候，在什么地方线程被打断，这样如何保证线程之间不破坏彼&lt;br /&gt;此的数据就显得格外重要。在MFC中，可以使用4个同步对象来保证多线程同时运行。它&lt;br /&gt;们分别是临界区对象（CCriticalSection）、互斥量对象（CMutex）、信号量对象（CS&lt;br /&gt;emaphore）和事件对象（CEvent）。在这些对象中，临界区对象使用起来最简单，它的&lt;br /&gt;缺点是只能同步同一个进程中的线程。另外，还有一种基本的方法，本文称为线性化方&lt;br /&gt;法，即在编程过程中对一定数据的写操作都在一个线程中完成。这样，由于同一线程中&lt;br /&gt;的代码总是按顺序执行的，就不可能出现同时改写数据的情况。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/2321517.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2012/01/13/2321517.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/12/03/1895211.html</id><title type="text">配置基于MyEclipse 8的Android 2.1开发环境（详细）以及Hello World</title><summary type="text">转帖请注明：http://hi.baidu.com/nogrief/blog/item/5c611fd3f41c670b3af3cf84.html一、准备所需软件。1、安装JDK1.6（已安装跳过此步） 由于SUN已经被Oracle收购，所以，现在下载jdk有点麻烦。 有两个途径可以下载，直接在百度搜索JDK 1.6。当然这是废话。对于咱们程序员，时刻掌握最新信息是王道，所以让我们看看怎么从oracle网站下载JDK。 首先在浏览器地址栏中输入http://www.sun.com/，会自动跳转到oracle的主页，当然，直接打http://www.oracle.com/也是可以的。转帖请注明：</summary><published>2010-12-03T02:33:00Z</published><updated>2010-12-03T02:33:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/12/03/1895211.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/12/03/1895211.html"/><content type="html">&lt;p&gt;转帖请注明：&lt;a href="http://hi.baidu.com/nogrief/blog/item/5c611fd3f41c670b3af3cf84.html"&gt;http://hi.baidu.com/nogrief/blog/item/5c611fd3f41c670b3af3cf84.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;一、准备所需软件。&lt;/p&gt;&lt;p&gt;1、安装JDK1.6（已安装跳过此步）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 由于SUN已经被Oracle收购，所以，现在下载jdk有点麻烦。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 有两个途径可以下载，直接在百度搜索JDK 1.6。当然这是废话。对于咱们程序员，时刻掌握最新信息是王道，所以让我们看看怎么从oracle网站下载JDK。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 首先在浏览器地址栏中输入&lt;a href="http://www.sun.com/"&gt;http://www.sun.com/&lt;/a&gt;，会自动跳转到oracle的主页，当然，直接打&lt;a href="http://www.oracle.com/"&gt;http://www.oracle.com/&lt;/a&gt;也是可以的。&lt;span style="color: #ffffff;"&gt;转帖请注明：&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110022444.jpg" /&gt;&lt;/p&gt;&lt;p&gt;找到左下方中间件（Middleware），点击Java。进入Oracle的Java主页。进入后注意不要点击右侧Get It Free，这个下载的不是JDK，而是JRE。我们要点击的是右侧中间的Download，点一下，会自动展开，选择第二个Java Technology Downloads。&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ffffff;"&gt;.&lt;/span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110030077.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;然后到了下载页面，默认已经选好windows，直接点击Download。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 点击后，会进入Java所有产品的下载主页。选择中间的Java SE，Java SE（JDK）6。&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110035589.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 进入后选择中间java，JDK。&lt;br /&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110043323.jpg" /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110045227.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp; 然后会弹出登录界面，点击下面Skip this Step即可，跳转到下载页面后，会自动进行下载。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以上是最常规的下载JDK的方式，通常我们不用这么麻烦，直接访问&lt;a href="http://java.sun.com/javase/downloads/index.jsp"&gt;http://java.sun.com/javase/downloads/index.jsp&lt;/a&gt;就可以了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;2、下载MyEclipse 8 IDE。&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ffffff;"&gt;&lt;/span&gt;最简单的方式是直接百度，搜索下载MyEclipse 8 GA即可，到今天为止（2010.2.27）最新版本为MyEclipse 8.5 M2，这个还是里程碑版，有兴趣的可以去下载试用。&lt;/p&gt;&lt;p&gt;再者，可以直接去MyEclipse网站下载，但是其网站屏蔽了中国大陆Ip，只能靠代理才能打开了。&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110051959.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110053295.jpg" /&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;这里上两张图供大家&amp;ldquo;欣赏&amp;rdquo;一下好了，MyEclipse分两个版本，一个是普通版本，一个Blue版本，Blue版本集成了所有普通版本的功能，与之不同的是，Blue版本加入了对WebSphere框架的开发支持。我本地使用的是Blue版本，提供给大家一个普通版本的下载链接。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;a href="http://downloads.myeclipseide.com/downloads/products/eworkbench/galileo/myeclipse-8.0.0-win32.exe"&gt;http://downloads.myeclipseide.com/downloads/products/eworkbench/galileo/myeclipse-8.0.0-win32.exe&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;直接复制到迅雷里面下载就行了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;再给大家一个Key，可以用到2012年12月31日。&lt;/p&gt;&lt;p&gt;UserName：NoGrief&lt;/p&gt;&lt;p&gt;Key：ALR8ZO-755444-6767865871087559&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110054757.jpg" /&gt;&lt;/p&gt;&lt;p&gt;3、下载ADT（Android Development Toolkit）&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 安装完MyEclipse以后，启动。选择help-&amp;gt;Software Updates-&amp;gt;add/remove software...&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110060063.jpg" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 稍等几分钟后，打开下载管理器，选择Add。&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110061274.jpg" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;然后在Search里面打入android，MyEclipse会自动过滤出ADT插件，然后点击next。&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110062552.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;由于我这里的MyEclipse已经安装过了，所以选中后，next是灰色的，如果第一次安装，next会亮起来，点击next就行了.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;点击后，会返回Add/Remove Software界面，里面会多一个Android Development Toolkit 后面标注是to install，点击apply即可，稍等下载完成。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span style="color: #ff0000;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;strong&gt;下载完成后，MyEclipse会提示重新启动，点否，手动关闭MyEclipse。接下来先要安装Android SDK。&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;/span&gt;&lt;/span&gt;4、安装Android SDK&lt;/p&gt;&lt;p&gt;首先到&lt;a href="http://developer.android.com/sdk/index.html"&gt;http://developer.android.com/sdk/index.html&lt;/a&gt;下载开发包。点击相应平台的链接即可。&lt;/p&gt;&lt;p&gt;然后勾上I agree to the terms of the Android SDK License Agreement. ，同意许可，点download下载。&lt;/p&gt;&lt;p&gt;附上下载地址：&lt;/p&gt;&lt;p&gt;&lt;a href="http://dl.google.com/android/android-sdk_r04-windows.zip"&gt;http://dl.google.com/android/android-sdk_r04-windows.zip&lt;/a&gt;&lt;/p&gt;&lt;p&gt;注意：有些地方的网络或机器不能访问此网站，复制下载地址，直接用迅雷下载即可。&lt;/p&gt;&lt;p&gt;下载完毕后，将压缩包解压到硬盘随意位置，我是解压到C:\android\跟目录下。&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110064256.jpg" /&gt;&lt;/p&gt;&lt;p&gt;我的习惯是一般将SDK安装到C盘根目录下面，这样用起来比较方便，在team开发的时候，不用将路径改来改去的。&lt;/p&gt;&lt;p&gt;解压完成后，运行SDK Setup.exe。&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110065643.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;运行后，安装程序会自动获取最新列表，请保证网络正常。这里选择Accept All，下载所有版本的SDK和GoogleAPIs，虽然我们这里讲的2.1的开发环境，为了将来可能会涉及低版本的开发，所以这里选择接受所有，然后点击Install Accepted，接下来就是漫长的等待了。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;有些同学可能在下载是显示无法下载，是因为无法访问google的https下载源，只要将https下载源强制成http就可以了，在setup中点击settings，勾选Misc里面的Fetch https... sources to be fetched using http://..即可。&lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110070769.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;选择后点击save，然后点击Installed Packages，点击右侧左下的Update All，按照上面操作下载即可。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;下载完毕后，我们还需要创建一个虚拟设备（AVD，Android Vertual Devices），点击左边列表中的&amp;ldquo;Virtual Devices&amp;rdquo;，然后点击new。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110073857.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;在打开的窗口中，输入相关参数，点击ok即可。&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110075178.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Name：为必填项，随便起个名字，我这里起的是AVD7，意思就是Android虚拟设备7，7是SDK版本。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;SD Card：4000MB，意为4G的SD Card。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Skin：使用默认即可，根绝不同开发，可能需要选择不同的分辨率。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;HardWare：支持的硬件，我这里除了默认，还选择了SD Card Support和Battery Support，也就是SD卡和电池的支持。这里根据需要添加，点击new，在列表里面选择需要的项目即可。如果单纯跑hello world，使用默认就可以了。 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;配置完成后，Create AVD。此操作比较漫长，耐心等待。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;创建完成后会给出此创建的AVD的信息。&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110083350.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;点击ok，返回到Manager。这时，刚刚创建的AVD已经显示在列表中了，并且状态是对钩。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110084389.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;关闭Manager即可。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;到此，软件准备结束。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;二、配置开发环境。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;1、配置MyEclipse的JDK&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;打开MyEclipse，会出现一个提示。提示说没有配置Android SDK路径。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110085525.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;直接点击ok关闭。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;首先先配置JDK，点window-&amp;gt;Preferences打开MyEclipse的全局配置。从左边树中先选择java，Installed JREs，然后选择Add，弹出JRE类型，选择第三个Standard VM（标准虚拟机），点Next。在JRE Home选择Directory（目录），选择刚刚安装完的JDK根目录，然后点OK，稍等一下，MyEclipse会自动搜索目录收集信息。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;注意这里一定要选择JDK安装目录，不是JRE安装目录。如果选错，开发中会出错。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110091657.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;配置完成后，点击finish。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;然后返回JDK列表，将JDK1.6勾选上即可。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;完成后先不要点确定。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;2、配置Android。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;在左边树上点击Android，右边出现Android SDK配置，点击SDK Location右边的Brower，选择Android SDK目录，点击确定。最后点击Apply，应用当前配置。点击应用后，稍等一会，列表中将会出现所有的已经下载的SDK。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110093184.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;到此位置，开发环境配置完毕，下面我就使用MyEclipse创建一个Android工程。并运行。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;三、Hello Worid&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;1、在左侧Package Explorer空白除点击鼠标右键，选择new-&amp;gt;other&lt;/p&gt;&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110094181.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;2、在弹出来的对话框中，选择Android-&amp;gt;Android Project，点击next。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110101595.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;3、配置工程基本信息。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;这步比较复杂，首先输入一个工程名称，这里我取名helloworld，然后contents选择&amp;ldquo;Create new project in workspace&amp;rdquo;，下面build target选择android 2.1。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110102937.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;Properties里面的Application Name（程序名称）姑且打入Hello World，这里可以根据需要填写。下面package Name（包名）填写需要创建的包路径，这个包路径包括存放初始创建的Activity。Create Activity里面打入HelloWorldActivity。Min SDK Version（最低SDK版本）因为SDK的各个版本并不完全兼容，所以 默认即可，点击finish完成。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;4、错误修复&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;如果建立完工程后，在problem里面出现错误提示，说找不到什么什么的，说明在创建工程时，没有将JDK放入Build Path里面。所以要手动添加一下。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110103987.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;首先在工程上点击鼠标右键，选择Properties，然后在打开的属性窗口中选择Java Build Path，点击Add Library添加一个库。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110104822.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;在打开的窗口中选择JRE System Library，点next。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110110451.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;然后选择Workspace default JRE，看看括号里面的是不是你添加的JDK，如果正确，点击finish。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110111636.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;这时候MyEclipse会重新编译工程，错误消失。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;这个错误的引起可能是ADT的bug造成的，等待下个版本更新吧。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;5、运行Hello World&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;创建完工程后，什么都不需要修改，工程上点击鼠标右键，选择 run as-&amp;gt;Android Application。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;这时，弹出AVD窗口（注意标题是你刚刚建立的AVD名字，我这里是AVD7），第一次启动会很慢，请耐心等待。观察控制台，会打印启动信息。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110112983.jpg" /&gt;&lt;/span&gt;&lt;br /&gt;控制台信息：&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110114145.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;等启动完毕后，会发现HelloWorld运行起来，在屏幕上会显示Hello World，HelloWorldActivity！&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;img src="http://pic002.cnblogs.com/images/2011/111584/2011062110123515.jpg" /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1895211.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/12/03/1895211.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888581.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》</title><summary type="text">摘要：《ArcGIS Engine+C#实例开发教程》，面向 ArcGIS Engine（以下简称AE）开发初学者，本教程将帮助您进一步理解AE的体系结构与开发方法，掌握基本的GIS桌面应用程序的开发。 版权声明： 《ArcGIS Engine+C#实例开发教程》为3SDN（http://www.3sdn.net）原创教程，版权所有。禁止商业用途转载（如需请联系作者），非商业用途转载请注明出处。教...</summary><published>2010-11-26T03:38:00Z</published><updated>2010-11-26T03:38:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888581.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888581.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;《ArcGIS Engine+C#实例开发教程》，面向 ArcGIS Engine（以下简称AE）开发初学者，本教程将帮助您进一步理解AE的体系结构与开发方法，掌握基本的GIS桌面应用程序的开发。 &lt;/div&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;版权声明：&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 《ArcGIS Engine+C#实例开发教程》为3SDN（&lt;a href="http://www.3sdn.net/"&gt;&lt;span style="color: #2b2bd5;"&gt;http://www.3sdn.net&lt;/span&gt;&lt;/a&gt;）原创教程，版权所有。禁止商业用途转载（如需请联系作者），非商业用途转载请注明出处。教程采用C#语言，以VS2005为开发工具。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;读者对象：&lt;br /&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ArcGIS Engine（以下简称AE）开发初学者,&lt;/span&gt;&lt;span style="color: #000000;"&gt; 了解AE基本体系，了解C#基本语法，了解VS2005的基本使用方法。&lt;br /&gt;&lt;strong&gt;预期学习效果：&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 进一步理解AE的体系结构与开发方法，掌握基本的GIS桌面应用程序的开发。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888581.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888581.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第八讲 属性数据表的查询显示</title><summary type="text">第一讲 桌面GIS应用程序框架的建立第二讲 菜单的添加及其实现第三讲 MapControl与PageLayoutControl同步第四讲 状态栏信息的添加与实现第五讲 鹰眼的实现第六讲 右键菜单添加与实现教程Bug及优化方案1第七讲 图层符号选择器的实现1第七讲 图层符号选择器的实现2第八讲 属性数据表的查询显示摘要：这一讲中，我们将实现图层属性数据表的查询显示。在ArcMap中，单击图层右键菜单...</summary><published>2010-11-26T03:32:00Z</published><updated>2010-11-26T03:32:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;摘要：&lt;/strong&gt;这一讲中，我们将实现图层属性数据表的查询显示。在ArcMap中，单击图层右键菜单中的&amp;ldquo;Open Attribute Table&amp;rdquo;命令，便可弹出属性数据表。本讲将完成类似的功能. &lt;/div&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在上一讲中，我们完成了图层符号选择器的制作。这一讲中，我们将实现图层属性数据表的查询显示。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在ArcMap中，单击图层右键菜单中的&amp;ldquo;Open Attribute Table&amp;rdquo;命令，便可弹出属性数据表。本讲将完成类似的功能，效果如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090513094331851.jpg" border="0" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图1&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;数据表显示，我们用了DataGridView控件。DataGridView控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用 DataGridView控件来显示少量数据的只读视图，也可以对其进行缩放以显示特大数据集的可编辑视图。我们可以很方便地把一个DataTable作为数据源绑定到DataGridView控件中。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;本讲的思路大体如下：首先根据图层属性中的字段创建一个空的DataTable，然后根据数据内容一行行填充DataTable数据，再将DataTable绑定到DataGridView控件，最后调用并显示属性表窗体。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;1.创建属性表窗体&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;新建一个Windows窗体，命名为&amp;ldquo;AttributeTableFrm.cs&amp;rdquo;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;从工具箱拖一个DataGridView控件到窗体，并将其Dock属性设置为&amp;ldquo;Fill&amp;rdquo;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加如下引用：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Carto;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Controls;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.esriSystem;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.SystemUI;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Geometry;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Geodatabase;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;2.创建空DataTable&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;首先传入ILayer，再查询到ITable，从ITable中的Fileds中获得每个Field，再根据Filed设置DataTable的DataColumn，由此创建一个只含图层字段的空DataTable。实现函数如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 根据图层字段创建一个只含字段的空DataTable&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="pLayer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="tableName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;private static DataTable CreateDataTableByLayer(ILayer pLayer, string tableName)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//创建一个DataTable表&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;DataTable pDataTable = new DataTable(tableName);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//取得ITable接口&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ITable pTable = pLayer as ITable;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IField pField = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;DataColumn pDataColumn;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//根据每个字段的属性建立DataColumn对象&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;for (int i = 0; i &amp;lt; pTable.Fields.FieldCount; i++)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pField = pTable.Fields.get_Field(i);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//新建一个DataColumn并设置其属性&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn = new DataColumn(pField.Name);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (pField.Name == pTable.OIDFieldName)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.Unique = true;//字段值是否唯一&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//字段值是否允许为空&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.AllowDBNull = pField.IsNullable;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//字段别名&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.Caption = pField.AliasName;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//字段数据类型&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.DataType = System.Type.GetType(ParseFieldType(pField.Type));&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//字段默认值&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.DefaultValue = pField.DefaultValue;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//当字段为String类型是设置字段长度&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (pField.VarType == 8)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn.MaxLength = pField.Length;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//字段添加到表中&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataTable.Columns.Add(pDataColumn);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pField = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataColumn = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return pDataTable;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;因为GeoDatabase的数据类型与.NET的数据类型不同，故要进行转换。转换函数如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 将GeoDatabase字段类型转换成.Net相应的数据类型&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="fieldType"&amp;gt;字段类型&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public static string ParseFieldType(esriFieldType fieldType)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;switch (fieldType)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeBlob:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeDate:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.DateTime";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeDouble:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.Double";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeGeometry:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeGlobalID:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeGUID:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeInteger:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.Int32";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeOID:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeRaster:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeSingle:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.Single";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeSmallInteger:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.Int32";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriFieldType.esriFieldTypeString:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;default:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "System.String";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;这一讲中，我们将实现图层属性数据表的查询显示。在ArcMap中，单击图层右键菜单中的&amp;ldquo;Open Attribute Table&amp;rdquo;命令，便可弹出属性数据表。本讲将完成类似的功能. &lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;3.装载DataTable数据&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;从上一步得到的DataTable还没有数据，只有字段信息。因此，我们要通过ICursor从ITable中逐一取出每一行数据，即IRow。再创建DataTable中相应的DataRow，根据IRow设置DataRow信息，再将所有的DataRow添加到DataTable中，就完成了DataTable数据的装载。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;为保证效率，一次最多只装载2000条数据到DataGridView。函数代码如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 填充DataTable中的数据&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="pLayer"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="tableName"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public static DataTable CreateDataTable(ILayer pLayer, string tableName)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//创建空DataTable&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;DataTable pDataTable = CreateDataTableByLayer(pLayer, tableName);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//取得图层类型&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;string shapeType = getShapeType(pLayer);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//创建DataTable的行对象&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;DataRow pDataRow = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//从ILayer查询到ITable&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ITable pTable = pLayer as ITable;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ICursor pCursor = pTable.Search(null, false);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//取得ITable中的行信息&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IRow pRow = pCursor.NextRow();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;int n = 0;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;while (pRow != null)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//新建DataTable的行对象&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataRow = pDataTable.NewRow();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;for (int i = 0; i &amp;lt; pRow.Fields.FieldCount; i++)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//如果字段类型为esriFieldTypeGeometry，则根据图层类型设置字段值&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (pRow.Fields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataRow[i] = shapeType;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//当图层类型为Anotation时，要素类中会有esriFieldTypeBlob类型的数据，&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//其存储的是标注内容，如此情况需将对应的字段值设置为Element&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;else if (pRow.Fields.get_Field(i).Type == esriFieldType.esriFieldTypeBlob)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataRow[i] = "Element";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;else&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataRow[i] = pRow.get_Value(i);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//添加DataRow到DataTable&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataTable.Rows.Add(pDataRow);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pDataRow = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;n++;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//为保证效率，一次只装载最多条记录&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (n == 2000)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pRow = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;else&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pRow = pCursor.NextRow();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return pDataTable;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;上面的代码中涉及到一个获取图层类型的函数getShapeTape，此函数是通过ILayer判断图层类型的，代码如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 获得图层的Shape类型&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="pLayer"&amp;gt;图层&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public static string getShapeType(ILayer pLayer)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IFeatureLayer pFeatLyr = (IFeatureLayer)pLayer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;switch (pFeatLyr.FeatureClass.ShapeType)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriGeometryType.esriGeometryPoint:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "Point";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriGeometryType.esriGeometryPolyline:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "Polyline";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriGeometryType.esriGeometryPolygon:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "Polygon";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;default:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return "";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;4.绑定DataTable到DataGridView&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;通过以上步骤，我们已经得到了一个含有图层属性数据的DataTable。现定义一个AttributeTableFrm类的成员变量：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;public DataTable attributeTable;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;通过以下函数，我们很容易将其绑定到DataGridView控件中。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 绑定DataTable到DataGridView&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="player"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public void&amp;nbsp;CreateAttributeTable(ILayer player)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;string tableName;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;tableName = getValidFeatureClassName(player .Name );&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;attributeTable&amp;nbsp;= CreateDataTable(player,tableName );&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.dataGridView1 .DataSource&amp;nbsp;= attributeTable ;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.Text = "属性表[" + tableName + "]&amp;nbsp;" + "记录数："+attributeTable.Rows.Count .ToString();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;因为DataTable的表名不允许含有&amp;ldquo;.&amp;rdquo;，因此我们用&amp;ldquo;_&amp;rdquo;替换。函数如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// 替换数据表名中的点&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="FCname"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public static string getValidFeatureClassName(string FCname)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;int dot = FCname.IndexOf(".");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (dot != -1)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return FCname.Replace(".", "_");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;return FCname;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;5.调用属性表窗体&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;通过1-4步骤，我们封装了一个AttributeTableFrm类，此类能够由ILayer显示图层中的属性表数据。那怎么调用AttributeTableFrm呢？&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;前面已经提到，我们是在TOCControl选中图层的右键菜单中弹出属性表窗体的，因此我们需要添加一个菜单项到TOCControl中Layer的右键菜单。而在第六讲中，我们采用的是AE中的IToolbarMenu实现右键菜单的，故我们还需自定义一个Command，实现打开属性表的功能。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;以ArcGIS的Base Command为模板新建项&amp;ldquo;OpenAttributeTable.cs&amp;rdquo;。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;注意：&lt;/strong&gt;新建Base Command模板时，会弹出一个对话框让我们选择模板适用对象，这时我们要选择MapControl、PageLayoutControl，即选择第二项或者倒数第二项。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加如下引用：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Carto; &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Display;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.esriSystem;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加成员变量：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private ILayer m_pLayer;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;修改构造函数为：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;public OpenAttributeTable(ILayer pLayer) &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// TODO: Define values for the public properties&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_category = ""; //localizable text&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_caption = "打开属性表";&amp;nbsp;//localizable text&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_message = "打开属性表";&amp;nbsp;//localizable text &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_toolTip = "打开属性表";&amp;nbsp;//localizable text &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_name = "打开属性表";&amp;nbsp;//unique id, non-localizable (e.g. "MyCategory_MyCommand")&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;m_pLayer = pLayer;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;try&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// TODO: change bitmap name if necessary&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;string bitmapResourceName = GetType().Name + ".bmp";&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;base.m_bitmap = new Bitmap(GetType(), bitmapResourceName);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;catch (Exception ex)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;System.Diagnostics.Trace.WriteLine(ex.Message, "Invalid Bitmap");&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;再在On_Click函数中添加如下代码，以创建并打开属性表窗体。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// Occurs when this command is clicked&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;public override void OnClick()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// TODO: Add OpenAttributeTable.OnClick implementation&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;AttributeTableFrm attributeTable = new AttributeTableFrm();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;attributeTable.CreateAttributeTable(m_pLayer);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;attributeTable.ShowDialog();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;至此，我们完成了OpenAttributeTable命令。显然，我们要在TOCControl的OnMouseDown事件中调用此命令。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;因为，当前选中的图层参数，即ILayer是通过OpenAttributeTable的构造函数传入的，而选中的ILayer是动态变化的，所以我们无法在窗体初始化的Form1_Load事件中就添加OpenAttributeTable菜单项到右键菜单。但我们可以在OnMouseDown事件中动态添加OpenAttributeTable菜单项。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;要注意的是，最后我们必须移除添加的OpenAttributeTable菜单项，不然每次按下右键都会添加此菜单项，将造成右键菜单中含有多个OpenAttributeTable菜单项。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;修改TOCControl的OnMouseDown事件的部分代码如下：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//&amp;hellip;&amp;hellip;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//弹出右键菜单&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (item == esriTOCControlItem.esriTOCControlItemMap)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;m_menuMap.PopupMenu(e.x, e.y, m_tocControl.hWnd);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (item == esriTOCControlItem.esriTOCControlItemLayer)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//动态添加OpenAttributeTable菜单项&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;m_menuLayer.AddItem(new OpenAttributeTable(layer), -1, 2, true, esriCommandStyles.esriCommandStyleTextOnly);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;m_menuLayer.PopupMenu(e.x, e.y, m_tocControl.hWnd);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;//移除OpenAttributeTable菜单项，以防止重复添加&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;m_menuLayer.Remove(2);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;6.编译运行&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;按下F5，编译运行程序，相信你已经实现了开篇处展示的属性表效果了吧！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;以上代码在Windows XP Sp3 + VS2005 + AE9.2环境下编译通过。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888573.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2</title><summary type="text">摘要：在第七讲 图层符号选择器的实现的第一阶段中，我们完成了符号选择器窗体的创建与调用。在第二阶段中，我们继续完成符号参数的调整与“更多符号”的加载。 教程目录：第一讲 桌面GIS应用程序框架的建立第二讲 菜单的添加及其实现第三讲 MapControl与PageLayoutControl同步第四讲 状态栏信息的添加与实现第五讲 鹰眼的实现第六讲 右键菜单添加与实现教程Bug...</summary><published>2010-11-26T03:29:00Z</published><updated>2010-11-26T03:29:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;在第七讲 图层符号选择器的实现的第一阶段中，我们完成了符号选择器窗体的创建与调用。在第二阶段中，我们继续完成符号参数的调整与&amp;ldquo;更多符号&amp;rdquo;的加载。 &lt;/div&gt;&lt;p class="-4"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-size: 12pt;"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-size: 12pt;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-size: 12pt;"&gt;《ArcGIS Engine+C#实例开发教程》为3SDN（http://www.3sdn.net）原创教程，作者闲云野鹤，版权所有。禁止商业用途转载（如需请联系作者），非商业用途转载请注明出处并完整保留本声明。&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000; font-size: 12pt;"&gt;在第七讲 图层符号选择器的实现的&lt;/span&gt;&lt;a href="http://www.3sdn.net/gis2dev/ae/2009-04-18/438.html"&gt;&lt;span style="color: #000000; font-size: 12pt;"&gt;第一阶段&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000; font-size: 12pt;"&gt;中，我们完成了符号选择器窗体的创建与调用。在第二阶段中，我们继续完成符号参数的调整与&amp;ldquo;更多符号&amp;rdquo;的加载。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;2.6&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;符号参数调整&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在地图整饰中，符号参数的调整是必须的功能。下面我们将实现符号颜色、外框颜色、线宽、角度等参数的调整。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（1）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加&lt;span style="font-family: 宋体;"&gt;SymbologyControl的OnItemSelected事件，此事件在鼠标选中符号时触发，此时显示出选定符号的初始参数，事件响应函数代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="508" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 选中符号时触发的事件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;private void axSymbologyControl_OnItemSelected(object sender, ESRI.Arc&lt;/span&gt;&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;&lt;span style="color: #000000;"&gt;GIS&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000;"&gt;.Controls.ISymbologyControlEvents_OnItemSelectedEvent e)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pStyleGalleryItem = (IStyleGalleryItem)e.styleGalleryItem;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Color color;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (this.axSymbologyControl.StyleClass)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //点符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassMarkerSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = this.ConvertIRgbColorToColor(((IMarkerSymbol)pStyleGalleryItem.Item).Color as IRgbColor);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置点符号角度和大小初始值&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Value = (decimal)((IMarkerSymbol)this.pStyleGalleryItem.Item).Angle;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.nudSize.Value = (decimal)((IMarkerSymbol)this.pStyleGalleryItem.Item).Size;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //线符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassLineSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = this.ConvertIRgbColorToColor(((ILineSymbol)pStyleGalleryItem.Item).Color as IRgbColor);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置线宽初始值&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Value = (decimal)((ILineSymbol)this.pStyleGalleryItem.Item).Width;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //面符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassFillSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = this.ConvertIRgbColorToColor(((IFillSymbol)pStyleGalleryItem.Item).Color as IRgbColor);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.BackColor = this.ConvertIRgbColorToColor(((IFillSymbol)pStyleGalleryItem.Item).Outline.Color as IRgbColor);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//设置外框线宽度初始值&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Value = (decimal)((IFillSymbol)this.pStyleGalleryItem.Item).Outline.Width;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; color = Color.Black;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置按钮背景色&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnColor.BackColor = color;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //预览符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（2）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调整点符号的大小&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加&lt;span style="font-family: 宋体;"&gt;nudSize控件的ValueChanged事件，即在控件的值改变时响应此事件，然后重新设置点符号的大小。代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="544" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 调整符号大小-点符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void nudSize_ValueChanged(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IMarkerSymbol)this.pStyleGalleryItem.Item).Size = (double)this.nudSize.Value;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（3）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调整点符号的角度&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加&lt;span style="font-family: 宋体;"&gt;nudAngle控件的ValueChanged事件，以重新设置点符号的角度。代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="545" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 调整符号角度-点符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void nudAngle_ValueChanged(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IMarkerSymbol)this.pStyleGalleryItem.Item).Angle = (double)this.nudAngle.Value;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（4）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调整线符号和面符号的线宽&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加&lt;span style="font-family: 宋体;"&gt;nudWidth控件的ValueChanged事件，以重新设置线符号的线宽和面符号的外框线的线宽。代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="547" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 调整符号宽度-限于线符号和面符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void nudWidth_ValueChanged(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (this.axSymbologyControl.StyleClass)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassLineSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((ILineSymbol)this.pStyleGalleryItem.Item).Width = Convert.ToDouble(this.nudWidth.Value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassFillSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得面符号的轮廓线符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILineSymbol pLineSymbol = ((IFillSymbol)this.pStyleGalleryItem.Item).Outline;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLineSymbol.Width = Convert.ToDouble(this.nudWidth.Value);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IFillSymbol)this.pStyleGalleryItem.Item).Outline = pLineSymbol;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（5）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 颜色转换&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在&lt;span style="font-family: 宋体;"&gt;Arc&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;GIS&lt;/a&gt; Engine中，颜色由IRgbColor接口实现，而在.NET框架中，颜色则由Color结构表示。故在调整颜色参数之前，我们必须完成以上两种不同颜色表示方式的转换。关于这两种颜色结构的具体信息，请大家自行查阅相关资料。下面添加两个颜色转换函数。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;Arc&lt;/span&gt;&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;&lt;span style="color: #000000;"&gt;GIS&lt;/span&gt;&lt;/a&gt;&lt;span style="color: #000000;"&gt; Engine&lt;/span&gt;&lt;span style="color: #000000;"&gt;中的IRgbColor接口转换至.NET中的Color结构的函数：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="549" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 将Arc&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;GIS&lt;/a&gt; Engine中的IRgbColor接口转换至.NET中的Color结构&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="pRgbColor"&amp;gt;IRgbColor&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;.NET中的System.Drawing.Color结构表示ARGB颜色&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;public Color ConvertIRgbColorToColor(IRgbColor pRgbColor)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ColorTranslator.FromOle(pRgbColor.RGB);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;.NET中的Color结构转换至于Arc&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;GIS&lt;/a&gt; Engine中的IColor接口的函数：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="548" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 将.NET中的Color结构转换至于Arc&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;GIS&lt;/a&gt; Engine中的IColor接口&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="color"&amp;gt;.NET中的System.Drawing.Color结构表示ARGB颜色&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;returns&amp;gt;IColor&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;public IColor ConvertColorToIColor(Color color)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IColor pColor = new RgbColorClass();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pColor.RGB = color.B * 65536 + color.G * 256 + color.R;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return pColor;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（6）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调整所有符号的颜色&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;选择颜色时，我们调用&lt;span style="font-family: 宋体;"&gt;.NET的颜色对话框ColorDialog，选定颜色后，修改颜色按钮的背景色为选定的颜色，以方便预览。双击btnColor按钮，添加如下代码：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="544" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 颜色按钮&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void btnColor_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //调用系统颜色对话框&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.colorDialog.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;//将颜色按钮的背景颜色设置为用户选定的颜色&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnColor.BackColor = this.colorDialog.Color;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置符号颜色为用户选定的颜色&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (this.axSymbologyControl.StyleClass)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //点符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassMarkerSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IMarkerSymbol)this.pStyleGalleryItem.Item).Color = this.ConvertColorToIColor(this.colorDialog.Color);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //线符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassLineSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((ILineSymbol)this.pStyleGalleryItem.Item).Color = this.ConvertColorToIColor(this.colorDialog.Color);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //面符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassFillSymbols:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IFillSymbol)this.pStyleGalleryItem.Item).Color = this.ConvertColorToIColor(this.colorDialog.Color);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //更新符号预览&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;}&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（7）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调整面符号的外框线颜色&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;同上一步类似，双击&lt;span style="font-family: 宋体;"&gt;btnOutlineColor按钮，添加如下代码：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="543" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// 外框颜色按钮&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void btnOutlineColor_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.colorDialog.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得面符号中的外框线符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILineSymbol pLineSymbol = ((IFillSymbol)this.pStyleGalleryItem.Item).Outline;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置外框线颜色&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLineSymbol.Color = this.ConvertColorToIColor(this.colorDialog.Color);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //重新设置面符号中的外框线符号&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((IFillSymbol)this.pStyleGalleryItem.Item).Outline = pLineSymbol;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置按钮背景颜色&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.BackColor = this.colorDialog.Color;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //更新符号预览&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.PreviewImage();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 至此，你可以编译运行程序，看看效果如何，是不是感觉很不错了？我们已经能够修改符号的参数，自定义符号了。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 但是，SymbologyControl默认加载的是ESRI.ServerStyle文件的样式，用过ArcMap的你可能已经注意到，ArcMap中的Symbol Selector有一个&amp;ldquo;More Symbols&amp;rdquo;按钮，可以加载其它的符号和ServerStyle文件。3sdnMap当然&amp;ldquo;一个都不能少&amp;rdquo;。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;2.7&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;添加更多符号菜单&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;还记得我们在开始的时候添加了&lt;span style="font-family: 宋体;"&gt;ContextMenuStrip控件吗？现在它终于派上用场了。我们要实现的功能是：单击&amp;ldquo;更多符号&amp;rdquo;弹出菜单（ContextMenu），菜单中列出了Arc&lt;a class="infotextkey" href="http://www.3sdn.net/" target="_blank"&gt;GIS&lt;/a&gt;自带的其它符号，勾选相应的菜单项就可以在SymbologyControl中增加相应的符号。在菜单的最后一项是&amp;ldquo;添加符号&amp;rdquo;，选择这一项时，将弹出打开文件对话框，我们可以由此选择其它的ServerStyle文件，以加载更多的符号。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（1）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 定义全局变量&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在&lt;span style="font-family: 宋体;"&gt;SymbolSelectorFrm中定义如下全局变量，用于判断菜单是否已经初始化。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="539" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;span style="font-family: 宋体;"&gt;//菜单是否已经初始化标志&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 宋体;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;bool contextMenuMoreSymbolInitiated = false;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（2）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 双击&amp;ldquo;更多符号&amp;rdquo;按钮，添加&lt;span style="font-family: 宋体;"&gt;Click事件。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在此事件响应函数中，我们要完成&lt;span style="font-family: 宋体;"&gt;ServerStyle文件的读取，将其文件名作为菜单项名称生成菜单并显示菜单。代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="567" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// &amp;ldquo;更多符号&amp;rdquo;按下时触发的事件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void btnMoreSymbols_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.contextMenuMoreSymbolInitiated == false)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sInstall = ReadRegistry("SOFTWARE\\ESRI\\CoreRuntime");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string path = System.IO.Path.Combine(sInstall, "Styles");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得菜单项数量&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string[] styleNames = System.IO.Directory.GetFiles(path, "*.ServerStyle");&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ToolStripMenuItem[] symbolContextMenuItem = new ToolStripMenuItem[styleNames.Length + 1];&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //循环添加其它符号菜单项到菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; styleNames.Length; i++)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[i] = new ToolStripMenuItem();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[i].CheckOnClick = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[i].Text = System.IO.Path.GetFileNameWithoutExtension(styleNames[i]);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (symbolContextMenuItem[i].Text == "ESRI")&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[i].Checked = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[i].Name = styleNames[i];&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //添加&amp;ldquo;更多符号&amp;rdquo;菜单项到菜单最后一项&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[styleNames.Length] = new ToolStripMenuItem();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[styleNames.Length].Text = "添加符号";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; symbolContextMenuItem[styleNames.Length].Name = "AddMoreSymbol";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //添加所有的菜单项到菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.contextMenuStripMoreSymbol.Items.AddRange(symbolContextMenuItem);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.contextMenuMoreSymbolInitiated = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //显示菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.contextMenuStripMoreSymbol.Show(this.btnMoreSymbols.Location);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体;"&gt;（3）&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加&lt;span style="font-family: 宋体;"&gt;contextMenuStripMoreSymbol控件的ItemClicked事件。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当单击某一菜单项时响应&lt;span style="font-family: 宋体;"&gt;ItemClicked事件，将选中的ServerStyle文件导入到SymbologyControl中并刷新。当用户单击&amp;ldquo;添加符号&amp;rdquo;菜单项时，弹出打开文件对话框，供用户选择其它的ServerStyle文件。代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="538" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;/// &amp;ldquo;更多符号&amp;rdquo;按钮弹出的菜单项单击事件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;private void contextMenuStripMoreSymbol_ItemClicked(object sender, ToolStripItemClickedEventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: 宋体;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ToolStripMenuItem pToolStripMenuItem = (ToolStripMenuItem)e.ClickedItem;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //如果单击的是&amp;ldquo;添加符号&amp;rdquo;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pToolStripMenuItem.Name == "AddMoreSymbol")&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //弹出打开文件对话框&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.openFileDialog.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //导入style file到SymbologyControl&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.LoadStyleFile(this.openFileDialog.FileName);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //刷新axSymbologyControl控件&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.Refresh();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else//如果是其它选项&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (pToolStripMenuItem.Checked == false)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.LoadStyleFile(pToolStripMenuItem.Name);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.Refresh();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.RemoveFile(pToolStripMenuItem.Name);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.Refresh();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: 宋体;"&gt;&lt;span style="color: #000000;"&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;2.8&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;编译运行&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;相信你已经盼这一步很久了吧，按照惯例，按下&lt;span style="font-family: 宋体;"&gt;F5吧！大功造成。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;以上代码在&lt;span style="font-family: 宋体;"&gt;AE9.2+VS2005+XP中编译通过。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888567.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现</title><summary type="text">摘要：我们要实现的是图层符号选择器，与ArcMap中的Symbol Selector的类似。本讲较前几讲而言，些许有些复杂，不过只要仔细琢磨，认真操作，你就很容易实现如下所示的符号选择器。教程目录：第一讲 桌面GIS应用程序框架的建立第二讲 菜单的添加及其实现第三讲 MapControl与PageLayoutControl同步第四讲 状态栏信息的添加与实现第五讲 鹰眼的实现第六讲 右键菜单添加与实...</summary><published>2010-11-26T03:28:00Z</published><updated>2010-11-26T03:28:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;我们要实现的是图层符号选择器，与ArcMap中的Symbol Selector的类似。本讲较前几讲而言，些许有些复杂，不过只要仔细琢磨，认真操作，你就很容易实现如下所示的符号选择器。&lt;span style="color: #000000;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在上一讲中，我们实现了右键菜单（ContextMenu）的添加与实现，在最后我预留给下一讲的问题是TOCControl控件图层拖拽的实现。后来发现此功能的实现异常简单，只要在TOCControl的属性页中，勾选&amp;ldquo;Enable Layer Drag and Drop&amp;rdquo;即可。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;这一讲，我们要实现的是图层符号选择器，与ArcMap中的Symbol Selector的类似。本讲较前几讲而言，些许有些复杂，不过只要仔细琢磨，认真操作，你就很容易实现如下所示的符号选择器。因为本讲篇幅较长，故我将其分成两个阶段，本文是第一阶段。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图&lt;span style="font-family: Times New Roman;"&gt;1 &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在&lt;span style="font-family: Times New Roman;"&gt;AE&lt;/span&gt;开发中，符号选择器有两种实现方式。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;一是在程序中直接调用&lt;span style="font-family: Times New Roman;"&gt;ArcMap&lt;/span&gt;中的符号选择器，如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图&lt;span style="font-family: Times New Roman;"&gt;2&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;二是自定义符号选择器，如图&lt;span style="font-family: Times New Roman;"&gt;1&lt;/span&gt;所示。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;由于第一种方式前提是必须安装&lt;span style="font-family: Times New Roman;"&gt;ArcGIS Desktop&lt;/span&gt;，其界面还是英文的，而对二次开发来说，大部分用户希望应该是中文界面。因此开发人员通常选择第二种方式，本讲也着重讲解第二种方式。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;通过对《&lt;span style="font-family: Times New Roman;"&gt;ArcGIS Engine+C#&lt;/span&gt;实例开发教程》前六讲的学习，我已经假定你已经基本熟悉&lt;span style="font-family: Times New Roman;"&gt;C#&lt;/span&gt;语言和&lt;span style="font-family: Times New Roman;"&gt;VS2005&lt;/span&gt;的操作，故在下面的教程中，我不准备说明每一步骤的具体操作方法，而只是说明操作步骤，以节省时间和篇幅。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p class="-3"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;1.&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;直接调用ArcMap中的符号选择器&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（1）添加ESRI.ArcGIS.DisplayUI的引用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;分别在解决方案管理器和代码中添加引用。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（2）添加TOCControl的Double_Click事件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（3）实现TOCControl的Double_Click事件。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;因为种方法不是本讲的重点，故不对代码进行分析，有兴趣的读者请自行理解或结合后面的内容理解。代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private void axTOCControl1_OnDoubleClick(object sender, ITOCControlEvents_OnDoubleClickEvent e) &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; esriTOCControlItem toccItem = esriTOCControlItem.esriTOCControlItemNone;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer iLayer = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBasicMap iBasicMap = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object unk = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object data = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.button == 1)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; axTOCControl1.HitTest(e.x, e.y, ref toccItem, ref iBasicMap, ref iLayer, ref unk,&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ref data);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Drawing.Point pos = new System.Drawing.Point(e.x, e.y);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (toccItem == esriTOCControlItem.esriTOCControlItemLegendClass)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.Carto.ILegendClass pLC = new LegendClassClass();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.Carto.ILegendGroup pLG = new LegendGroupClass();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (unk is ILegendGroup)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLG = (ILegendGroup)unk;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLC = pLG.get_Class((int)data);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISymbol pSym;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSym = pLC.Symbol;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.DisplayUI.ISymbolSelector pSS = new&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ESRI.ArcGIS.DisplayUI.SymbolSelectorClass();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool bOK = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSS.AddSymbol(pSym);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;bOK = pSS.SelectSymbol(0);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bOK)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLC.Symbol = pSS.GetSymbolAt(0);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axMapControl1.ActiveView.Refresh();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axTOCControl1.Refresh();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（4）编译运行即可。&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="-3"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;2.&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;自定义符号选择器&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;AE9.2提供了SymbologyControl控件，极大的方便了图层符号选择器的制作。本讲实现的符号选择器有如下功能。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;用户双击TOCControl控件中图层的符号时，弹出选择符号对话框，对话框能够根据图层类型自动加载相应的符号，如点、线、面。用户可以调整符号的颜色、线宽、角度等参数。还可以打开自定义的符号文件（*.ServerStyle），加载更多的符号。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;2.1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 新建符号选择器窗体&lt;/span&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;新建Winodws窗体，命名为SymbolSelectorFrm，修改窗体的Text属性为&amp;ldquo;选择符号&amp;rdquo;。并添加SymboloryControl、PictureBox、Button、Label、NumericUpDown、GroupBox、ColorDialog、OpenFileDialog、ContextMenuStrip控件。控件布局如下所示：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图3&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;2.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 设置控件属性&lt;/span&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;设置相应控件的相关属性，如下表所示(空则不用修改)：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="122"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;控件&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;Name&lt;/strong&gt;&lt;strong&gt;属性&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;Text&lt;/strong&gt;&lt;strong&gt;属性&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142"&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;其它&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;SymbologyControl&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;axSymbologyControl&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;PictureBox&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ptbPreview&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;lblColor&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;颜色&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;lblSize&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;大小&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;lblWidth&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;线宽&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;lblAngle&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;角度&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Label&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;lblOutlineColor&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;外框颜色&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;NumericUpDown&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;nudSize&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;NumericUpDown&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;nudWidth&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;NumericUpDown&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;nudAngle&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;btnColor&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（设置为空）&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;btnOutlineColor&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（设置为空）&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;btnMoreSymbols&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;更多符号&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;btnOK&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;确定&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;DialogResult属性设为OK&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Button&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;btnCancel&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;取消&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;GroupBox&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;groupBox1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;预览&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;GroupBox&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;groupBox2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;设置&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ColorDialog&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;colorDialog&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;OpenFileDialog&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;openFileDialog&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Filter属性设置为：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Styles 文件|*.ServerStyle&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="122" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ContextMenuStrip&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="135" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;contextMenuStripMoreSymbol&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="100" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td width="142" valign="top"&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;2.3&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加引用&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在解决方案资源管理器中添加ArcGIS Engine的ESRI.ArcGIS.Geodatabase引用，在SymbolSelectorFrm.cs文件中添加如下引用代码：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;using ESRI.ArcGIS.Carto; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Display;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.esriSystem;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.SystemUI;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Controls;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;using ESRI.ArcGIS.Geodatabase;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;&lt;strong&gt;2.4&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp; 初始化&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（1）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加SymbolSelectorFrm的全局变量，代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private IStyleGalleryItem pStyleGalleryItem;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private ILegendClass pLegendClass;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private ILayer pLayer;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;public ISymbol pSymbol;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;public Image pSymbolImage;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（2）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 修改SymbolSelectorFrm的构造函数，传入图层和图例接口。代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 构造函数,初始化全局变量&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="tempLegendClass"&amp;gt;TOC图例&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="tempLayer"&amp;gt;图层&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;public SymbolSelectorFrm(ILegendClass tempLegendClass, ILayer tempLayer)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; InitializeComponent();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.pLegendClass = tempLegendClass;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.pLayer = tempLayer;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（3）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加SymbolControl的SymbologyStyleClass设置函数SetFeatureClassStyle()，代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 初始化SymbologyControl的StyleClass,图层如果已有符号,则把符号添加到SymbologyControl中的第一个符号,并选中&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="symbologyStyleClass"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void SetFeatureClassStyle(esriSymbologyStyleClass symbologyStyleClass)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axSymbologyControl.StyleClass = symbologyStyleClass;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ISymbologyStyleClass pSymbologyStyleClass = this.axSymbologyControl.GetStyleClass(symbologyStyleClass);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.pLegendClass != null)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IStyleGalleryItem currentStyleGalleryItem = new ServerStyleGalleryItem();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentStyleGalleryItem.Name = "当前符号";&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; currentStyleGalleryItem.Item = pLegendClass.Symbol;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSymbologyStyleClass.AddItem(currentStyleGalleryItem,0);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.pStyleGalleryItem = currentStyleGalleryItem;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pSymbologyStyleClass.SelectItem(0);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（4）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加注册表读取函数ReadRegistry()，此函数从注册表中读取ArcGIS的安装路径，代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 从注册表中取得指定软件的路径&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sKey"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private string ReadRegistry(string sKey)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Open the subkey for reading&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft.Win32.RegistryKey rk = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sKey, true);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (rk == null) return "";&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get the data from a specified item in the key.&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (string)rk.GetValue("InstallDir");&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（5）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 添加SymbolSelectorFrm的Load事件。根据图层类型为SymbologyControl导入相应的符号样式文件，如点、线、面，并设置控件的可视性。代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void SymbolSelectorFrm_Load(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;//取得ArcGIS安装路径&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;string sInstall = ReadRegistry("SOFTWARE\\ESRI\\CoreRuntime");&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;//载入ESRI.ServerStyle文件到SymbologyControl&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;this.axSymbologyControl.LoadStyleFile(sInstall + "\\Styles\\ESRI.ServerStyle");&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;//确定图层的类型(点线面),设置好SymbologyControl的StyleClass,设置好各控件的可见性(visible)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;IGeoFeatureLayer pGeoFeatureLayer = (IGeoFeatureLayer)pLayer;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;switch (((IFeatureLayer)pLayer).FeatureClass.ShapeType)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassMarkerSymbols);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;this.lblAngle.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolyline:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassLineSymbols);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassFillSymbols);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryMultiPatch:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetFeatureClassStyle(esriSymbologyStyleClass.esriStyleClassFillSymbols);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Close();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（6）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 双击确定按钮和取消按钮，分别添加如下代码：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 确定按钮&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void btnOK_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得选定的符号&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.pSymbol = (ISymbol)pStyleGalleryItem.Item;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //更新预览图像&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.pSymbolImage = this.ptbPreview.Image;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //关闭窗体&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Close();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 取消按钮&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void btnCancel_Click(object sender, EventArgs e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.Close();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（7）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 为了操作上的方便，我们添加SymbologyControl的DoubleClick事件，当双击符号时同按下确定按钮一样，选定符号并关闭符号选择器窗体。代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 双击符号同单击确定按钮，关闭符号选择器。&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void axSymbologyControl_OnDoubleClick(object sender, ESRI.ArcGIS.Controls.ISymbologyControlEvents_OnDoubleClickEvent e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOK.PerformClick();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（8）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再添加符号预览函数，当用户选定某一符号时，符号可以显示在PictureBox控件中，方便预览，函数代码如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 把选中并设置好的符号在picturebox控件中预览&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void PreviewImage()&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stdole.IPictureDisppicture =this.axSymbologyControl.GetStyleClass(this.axSymbologyControl.StyleClass).PreviewItem(pStyleGalleryItem,this.ptbPreview.Width, this.ptbPreview.Height);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Drawing.Image image = System.Drawing.Image.FromHbitmap(new System.IntPtr(picture.Handle));&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.ptbPreview.Image = image;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（9）&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 当SymbologyControl的样式改变时，需要重新设置符号参数调整控件的可视性，故要添加SymbologyControl的OnStyleClassChanged事件，事件代码与Load事件类似，如下：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 当样式（Style）改变时，重新设置符号类型和控件的可视性&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;privatevoid axSymbologyControl_OnStyleClassChanged(object sender,ESRI.ArcGIS.Controls.ISymbologyControlEvents_OnStyleClassChangedEvent e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch ((esriSymbologyStyleClass)(e.symbologyStyleClass))&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassMarkerSymbols:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassLineSymbols:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case esriSymbologyStyleClass.esriStyleClassFillSymbols:&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;this.nudAngle.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudSize.Visible = false;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.nudWidth.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.lblOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.btnOutlineColor.Visible = true;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="-4"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&lt;span style="font-family: 宋体; font-size: 12pt;"&gt;2.5&lt;/span&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 调用自定义符号选择器&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;通过以上操作，本符号选择器雏形已经完成，我们可以3sdnMap主窗体中调用并进行测试。如果您已经完成&amp;ldquo;直接调用ArcMap中的符号选择器&amp;rdquo;这一节，请注释axTOCControl1_OnDoubleClick事件响应函数里的代码，并添加如下代码。如果您是直接学习自定义符号选择器这一节的，请先添加axTOCControl1控件的OnDoubleClick事件，再添加如下事件响应函数代码：&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// 双击TOCControl控件时触发的事件&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;private void axTOCControl1_OnDoubleClick(object sender, ITOCControlEvents_OnDoubleClickEvent e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; esriTOCControlItem itemType = esriTOCControlItem.esriTOCControlItemNone;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBasicMap basicMap = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object unk = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; object data = null; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; axTOCControl1.HitTest(e.x, e.y, ref itemType, ref basicMap, ref layer, ref unk, ref data); &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.button == 1)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(itemType==esriTOCControlItem.esriTOCControlItemLegendClass)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //取得图例&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILegendClass pLegendClass = ((ILegendGroup)unk).get_Class((int)data);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //创建符号选择器SymbolSelector实例&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SymbolSelectorFrm SymbolSelectorFrm = new SymbolSelectorFrm(pLegendClass, layer);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SymbolSelectorFrm.ShowDialog() == DialogResult.OK)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //局部更新主Map控件&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;m_mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置新的符号&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pLegendClass.Symbol = SymbolSelectorFrm.pSymbol;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //更新主Map控件和图层控件&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axMapControl1.ActiveView.Refresh();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.axTOCControl1.Refresh();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 按F5编译运行，相信你已经看到自己新手打造的符号选择器已经出现在眼前了。当然，它还比较简陋，下面我们将一起把它做得更完美些。&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888565.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》教程Bug及优化方案1</title><summary type="text">摘要：《ArcGIS Engine+C#实例开发教程》教程Bug及优化方案1,到第六讲为止已经发现的教程Bug及解决方法如下.第一讲 桌面GIS应用程序框架的建立第二讲 菜单的添加及其实现第三讲 MapControl与PageLayoutControl同步第四讲 状态栏信息的添加与实现第五讲 鹰眼的实现第六讲 右键菜单添加与实现教程Bug及优化方案1第七讲 图层符号选择器的实现1第七讲 图层符号选...</summary><published>2010-11-26T03:26:00Z</published><updated>2010-11-26T03:26:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;《ArcGIS Engine+C#实例开发教程》教程Bug及优化方案1,到第六讲为止已经发现的教程Bug及解决方法如下.&lt;br /&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;到第六讲为止已经发现的教程Bug及解决方法如下：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;1、在第二讲可能会出现变量未定义。&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;原因：第二讲与第三讲联系紧密，我为控制篇幅才将其分为两讲，某些变量是在第三讲才进行定义，请大家注意。&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;2、第六讲弹不出TOCControl的右键菜单&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;原因：没有取得m_tocControl的指针，即没有把m_tocControl指针与axTOCControl1控件绑定，导致调用m_menuMap.PopupMenu(e.x, e.y,m_tocControl.hWnd);时m_tocControl.hWnd为NULL，故无法弹出菜单。&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;解决方法：在Form1_Load()函数中，添加如下代码：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;m_tocControl = (ITOCControl2)this.axTOCControl1.Object;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;br /&gt;目前已经发现的优化方案如下：&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #0000ff;"&gt;1、教程第四讲，坐标单位前面的esri，原用switch语句逐一替换，其实直接用取子串(Substring)的方法截去更方便。&lt;br /&gt;&lt;/span&gt;修改代码如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&amp;nbsp;CoordinateLabel.Text= " 当前坐标 X = " + e.mapX.ToString() + " Y = " + e.mapY.ToString() + " "+ this.axMapControl1.MapUnits.ToString().Substring(4);&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: #0000ff;"&gt;2、教程第四讲，固定状态栏中的比例尺和当前坐标项目的宽度以防止闪烁。&lt;br /&gt;&lt;/span&gt;方法如下：&lt;br /&gt;选中状态栏中的比例尺或当前坐标项目，把其autoSize属性设为False，再在Size属性里设置宽度。经测试，比例尺宽度为150，当前坐标宽度为400比较合适。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888559.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第五讲 鹰眼的实现</title><summary type="text">摘要：所谓的鹰眼，就是一个缩略地图，上面有一个矩形框，矩形框区域就是当前显示的地图区域，拖动矩形框可以改变当前地图显示的位置，改变矩形框的大小，可以改变当前地图的显示区域大小，从起到导航的作用。鹰眼是地图浏览中常用的功能之一。关于鹰眼的实现方式，最常用的是用一个 MapControl控件显示地图全图，并在上面画一个红色矩形框表示当前地图的显示范围，并实现鹰眼 MapControl 与主窗体的 Ma...</summary><published>2010-11-26T03:25:00Z</published><updated>2010-11-26T03:25:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"/><content type="html">&lt;div id="textbody" class="content"&gt;&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;所谓的鹰眼，就是一个缩略地图，上面有一个矩形框，矩形框区域就是当前显示的地图区域，拖动矩形框可以改变当前地图显示的位置，改变矩形框的大小，可以改变当前地图的显示区域大小，从起到导航的作用。鹰眼是地图浏览中常用的功能之一。关于鹰眼的实现方式，最常用的是用一个 MapControl控件显示地图全图，并在上面画一个红色矩形框表示当前地图的显示范围，并实现鹰眼 MapControl 与主窗体的 MapControl 互动。 &lt;/div&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在上一讲中，我们实现了状态栏的相关信息显示，在这一讲中我们将要实现鹰眼功能。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;所谓的鹰眼，就是一个缩略地图，上面有一个矩形框，矩形框区域就是当前显示的地图区域，拖动矩形框可以改变当前地图显示的位置，改变矩形框的大小，可以改变当前地图的显示区域大小，从起到导航的作用。鹰眼是地图浏览中常用的功能之一。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;关于鹰眼的实现方式，最常用的是用一个 MapControl 控件显示地图全图，并在上面画一个红色矩形框表示当前地图的显示范围，并实现鹰眼 MapControl 与主窗体的 MapControl 互动。本讲最终效果如下所示： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090512085524709.jpg" border="0" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图 1 鹰眼效果 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;1 &lt;/strong&gt;&lt;strong&gt;、添加鹰眼控件 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;由于本教程在第一讲中没有预先考虑到鹰眼所放的位置，故我们要先稍微调整一下程序框架，并添加一个 MapControl 用于显示鹰眼。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在本教程中，我们将鹰眼放在图层控件的下方，调整方法如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 1 ）在设计视图中，选择 tabControl1 控件，即放图层和属性的那个容器，将其Dock 属性设为 None ，并用鼠标拖拽将其缩小。把工具箱中的 SplitContainer 控件拖到窗体的左窗格，即放在tabControl1 控件的旁边。并将其 Orientation 属性设置为 Horizontal 。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 2 ）选中 tabControl1 控件，按 Ctrl+X 剪切，再选中刚才粘贴到 SplitContainer2 的 Panel1 中，如图 2 所示。操作完成后效果如图 3 所示。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090512085528235.jpg" border="0" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图 2 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090512085530308.jpg" border="0" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图 3 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 3 ）再选中 SplitContainer2 控件（如果不好选中，直接以属性面板中选择 SplitContainer2 ），将其 Dock 属性设置为 Fill 。再选中 tabControl1 ，将其 Dock 属性也设置为 Fill 。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 4 ）从工具箱中选择 MapControl 控件并拖到 SplitContainer2 的 Panel2 ，作为鹰眼控件。最终效果如图 4 所示。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090512085530314.jpg" border="0" alt="" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;图 4 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;2 &lt;/strong&gt;&lt;strong&gt;、鹰眼的实现 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 1 ）载入地图到鹰眼控件 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当地图载入到主 Map 控件时，同时也载入到鹰眼控件，在 axMapControl1_OnMapReplaced 事件响应函数（此函数上一讲中已经添加了）中添加如下代码： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 前面代码省略 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 当主地图显示控件的地图更换时，鹰眼中的地图也跟随更换 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl2.Map = new MapClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 添加主地图控件中的所有图层到鹰眼控件中 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;for (int i = 1; i &amp;lt;= this.axMapControl1.LayerCount; i++) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl2.AddLayer(this.axMapControl1.get_Layer(this.axMapControl1.LayerCount - i)); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 设置 MapControl 显示范围至数据的全局范围 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl2.Extent = this.axMapControl1.FullExtent; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 刷新鹰眼控件地图 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl2.Refresh(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 2 ）绘制鹰眼矩形框 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;为鹰眼控件 MapControl1 添加 OnExtentUpdated 事件，此事件是在主 Map 控件的显示范围改变时响应，从而相应更新鹰眼控件中的矩形框。其响应函数代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;private void axMapControl1_OnExtentUpdated(object sender, IMapControlEvents2_OnExtentUpdatedEvent e) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 得到新范围 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IEnvelope pEnv = (IEnvelope)e.newEnvelope; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IGraphicsContainer pGra = axMapControl2.Map as IGraphicsContainer; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IActiveView pAv = pGra as IActiveView; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 在绘制前，清除 axMapControl2 中的任何图形元素 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pGra.DeleteAllElements(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IRectangleElement pRectangleEle = new RectangleElementClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IElement pEle = pRectangleEle as IElement; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pEle.Geometry = pEnv; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 设置鹰眼图中的红线框 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IRgbColor pColor = new RgbColorClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Red = 255; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Green = 0; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Blue = 0; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Transparency = 255; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 产生一个线符号对象 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ILineSymbol pOutline = new SimpleLineSymbolClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pOutline.Width = 2; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pOutline.Color = pColor; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 设置颜色属性 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor = new RgbColorClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Red = 255; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Green = 0; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Blue = 0; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pColor.Transparency = 0; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 设置填充符号的属性 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IFillSymbol pFillSymbol = new SimpleFillSymbolClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pFillSymbol.Color = pColor; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pFillSymbol.Outline = pOutline; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IFillShapeElement pFillShapeEle = pEle as IFillShapeElement; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pFillShapeEle.Symbol = pFillSymbol; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pGra.AddElement((IElement)pFillShapeEle, 0); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 刷新 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pAv.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ 3 ）鹰眼与主 Map 控件互动 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;为鹰眼控件 MapControl2 添加 OnMouseDown 事件，代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;private void axMapControl2_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (this.axMapControl2.Map.LayerCount != 0) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 按下鼠标左键移动矩形框 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (e.button == 1) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IPoint pPoint = new PointClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pPoint.PutCoords(e.mapX, e.mapY); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IEnvelope pEnvelope = this.axMapControl1.Extent; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pEnvelope.CenterAt(pPoint); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.Extent = pEnvelope; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 按下鼠标右键绘制矩形框 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;else if (e.button == 2) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IEnvelope pEnvelop = this.axMapControl2.TrackRectangle(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.Extent = pEnvelop; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;为鹰眼控件 MapControl2 添加 OnMouseMove 事件，主要实现按下鼠标左键的时候移动矩形框，同时也改变主的图控件的显示范围。代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;private void axMapControl2_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 如果不是左键按下就直接返回 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (e.button != 1) return; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IPoint pPoint = new PointClass(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;pPoint.PutCoords(e.mapX, e.mapY); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.CenterAt(pPoint); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;1、 编译运行 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;按 F5 编译运行程序。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;期待的鹰眼功能你已经实现了，按下左键在鹰眼窗口中移动，或者按下右键在鹰眼窗口中画一个矩形，主地图窗口的显示范围都会跟着变化。主地图窗口中的地图经放大缩小等操作后，鹰眼窗口的矩形框大小也会随着改变。 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888555.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第六讲 右键菜单添加与实现</title><summary type="text">摘要：在这一讲中，大家将实现TOCControl控件和主地图控件的右键菜单。在AE开发中，右键菜单有两种实现方式，一是使用VS2005自带的ContextMenuStrip控件，二是用AE封装的IToolbarMenu接口。相比较而言，后者更为简单实用，本文采用后者的实现方法。 教程目录：第一讲 桌面GIS应用程序框架的建立第二讲 菜单的添加及其实现第三讲 MapControl与PageLayou...</summary><published>2010-11-26T03:25:00Z</published><updated>2010-11-26T03:25:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"/><content type="html">&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;在这一讲中，大家将实现TOCControl控件和主地图控件的右键菜单。在AE开发中，右键菜单有两种实现方式，一是使用VS2005自带的ContextMenuStrip控件，二是用AE封装的IToolbarMenu接口。相比较而言，后者更为简单实用，本文采用后者的实现方法。 &lt;/div&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;在上一讲中，我们完成了鹰眼功能，在这一讲中，大家将实现TOCControl控件和主地图控件的右键菜单。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="color: #000000; font-family: arial;"&gt;在&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;AE开发中，右键菜单有两种实现方式，一是使用VS2005自带的ContextMenuStrip控件，二是用AE封装的IToolbarMenu接口。相比较而言，后者更为简单实用，本文采用后者的实现方法。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a0"&gt;&lt;strong&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1、创建右键菜单&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p class="a0"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;在Form1类里面添加如下变量的定义：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//TOCControl控件变量 &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;private ITOCControl2 m_tocControl = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//TOCControl中Map菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;private IToolbarMenu m_menuMap = null;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//TOCControl中图层菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;private IToolbarMenu m_menuLayer = null;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在Form1_Load函数进行初始化，即菜单的创建：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;m_menuMap = new ToolbarMenuClass();&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;m_menuLayer = new ToolbarMenuClass();&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;strong&gt;&lt;span style="font-family: Arial;"&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;2、&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;添加菜单项&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;第1步中创建的菜单可认为是菜单容器，里面什么都没有，具体的命令或工具作为菜单项添加到菜单容器才能工作。一般情况下，启动程序就要完成菜单项的添加，故此工作在Form1_Load函数完成。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;当然，添加菜单项之前，必须实现相应命令或工具。这里的命令或工具可以AE内置的也可以是自定义的。AE内置了许多可以直接调用的常用命令和工具，如ControlsAddDataCommandClass，在ESRI.ArcGIS.Controls命名空间中，大家可以对象浏览器中查看。当然，这里也可以直接调用AE内置的菜单，如ControlsFeatureSelectionMenu。另外，本讲也实现三自定义命令，以做示范。它们分别为图层可视控制命令（用于控制图层显示与否）、移除图层和放大到整个图层命令。实现方法也很简单，就是右击3sdnMap项目，选择&amp;ldquo;添加|类&amp;rdquo;，选择C#普通的类模板，用以下代码覆盖系统自己生成的所有代码。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;图层可视控制类LayerVisibility代码：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;using ESRI.ArcGIS.ADF.BaseClasses; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Controls;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Carto;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.SystemUI;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;namespace _sdnMap&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 图层可视控制&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public sealed class LayerVisibility : BaseCommand, ICommandSubType &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private IHookHelper m_hookHelper = new HookHelperClass();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private long m_subType;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public LayerVisibility()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnClick()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i=0; i &amp;lt;= m_hookHelper.FocusMap.LayerCount - 1; i++)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_subType == 1) m_hookHelper.FocusMap.get_Layer(i).Visible = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_subType == 2) m_hookHelper.FocusMap.get_Layer(i).Visible = false;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_hookHelper.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography,null,null);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnCreate(object hook)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_hookHelper.Hook = hook;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public int GetCount()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 2;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void SetSubType(int SubType)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_subType = SubType;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override string Caption&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_subType == 1) return "Turn All Layers On";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp; return "Turn All Layers Off";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override bool Enabled&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bool enabled = false; int i;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_subType == 1) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;=m_hookHelper.FocusMap.LayerCount - 1;i++)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_hookHelper.ActiveView.FocusMap.get_Layer(i).Visible == false)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enabled = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0;i&amp;lt;=m_hookHelper.FocusMap.LayerCount - 1;i++)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (m_hookHelper.ActiveView.FocusMap.get_Layer(i).Visible == true)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enabled = true;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return enabled;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-family: arial;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;移除图层类RemoveLayer代码：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using ESRI.ArcGIS.ADF.BaseClasses; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Carto;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Controls;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;namespace _sdnMap&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 删除图层&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public sealed class RemoveLayer : BaseCommand&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private IMapControl3 m_mapControl;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public RemoveLayer()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.m_caption = "Remove Layer";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnClick()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = (ILayer)m_mapControl.CustomProperty;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_mapControl.Map.DeleteLayer(layer);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnCreate(object hook)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_mapControl = (IMapControl3)hook;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000;"&gt;&lt;span style="font-family: arial;"&gt;}&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;放大至整个图层类ZoomToLayer：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using ESRI.ArcGIS.ADF.BaseClasses; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Carto;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;using ESRI.ArcGIS.Controls;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;namespace _sdnMap&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// 放大至整个图层&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public sealed class ZoomToLayer : BaseCommand&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private IMapControl3 m_mapControl;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ZoomToLayer()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; base.m_caption = "Zoom To Layer";&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnClick()&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = (ILayer)m_mapControl.CustomProperty;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_mapControl.Extent = layer.AreaOfInterest;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override void OnCreate(object hook)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_mapControl = (IMapControl3)hook;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;以上三个工具或命令的实现代码比较简单，在此不过多的分析，请读者自行理解。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;下面在Form1_Load函数中进行菜单项的添加，代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;//添加自定义菜单项到TOCCOntrol的Map菜单中 &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//打开文档菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddItem(new OpenNewMapDocument(m_controlsSynchronizer), -1, 0, false, esriCommandStyles.esriCommandStyleIconAndText);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//添加数据菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddItem(new ControlsAddDataCommandClass(), -1, 1, false, esriCommandStyles.esriCommandStyleIconAndText);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;//打开全部图层菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddItem(new LayerVisibility(), 1, 2, false, esriCommandStyles.esriCommandStyleTextOnly);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//关闭全部图层菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddItem(new LayerVisibility(), 2, 3, false, esriCommandStyles.esriCommandStyleTextOnly);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;//以二级菜单的形式添加内置的&amp;ldquo;选择&amp;rdquo;菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddSubMenu("esriControls.ControlsFeatureSelectionMenu", 4, true);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//以二级菜单的形式添加内置的&amp;ldquo;地图浏览&amp;rdquo;菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.AddSubMenu("esriControls.ControlsMapViewMenu",5, true);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//添加自定义菜单项到TOCCOntrol的图层菜单中&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuLayer = new ToolbarMenuClass();&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//添加&amp;ldquo;移除图层&amp;rdquo;菜单项&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuLayer.AddItem(new RemoveLayer(), -1, 0, false, esriCommandStyles.esriCommandStyleTextOnly);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;//添加&amp;ldquo;放大到整个图层&amp;rdquo;菜单项&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuLayer.AddItem(new ZoomToLayer(), -1, 1, true, esriCommandStyles.esriCommandStyleTextOnly);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;//设置菜单的Hook&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuLayer.SetHook(m_mapControl);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;m_menuMap.SetHook(m_mapControl);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-size: 12pt;"&gt;&lt;strong&gt;3、&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;弹出右键菜单&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;顾名思义，右键菜单是在鼠标右键按下的时候弹出，所以我们要添加TOCControl1控件的OnMouseDown&lt;/span&gt;&lt;span style="color: #000000;"&gt;事件，实现代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private void axTOCControl1_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e) &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //如果不是右键按下直接返回&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.button != 2) return;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IBasicMap map = null; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ILayer layer = null;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object other = null; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object index = null;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //判断所选菜单的类型&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_tocControl.HitTest(e.x, e.y, ref item, ref map, ref layer, ref other, ref index);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //确定选定的菜单类型，Map或是图层菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (item == esriTOCControlItem.esriTOCControlItemMap)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_tocControl.SelectItem(map, null);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_tocControl.SelectItem(layer, null);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //设置CustomProperty为layer (用于自定义的Layer命令)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_mapControl.CustomProperty = layer;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //弹出右键菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (item == esriTOCControlItem.esriTOCControlItemMap) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_menuMap.PopupMenu(e.x, e.y, m_tocControl.hWnd);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (item == esriTOCControlItem.esriTOCControlItemLayer) &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_menuLayer.PopupMenu(e.x, e.y, m_tocControl.hWnd);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;同样的方法，我们也可以实现主地图控件的右键菜单，以方便地图浏览。添加&lt;/span&gt;&lt;span style="color: #000000;"&gt;MapControl1控件的OnMouseDown事件，实现代码如下：&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;/// &amp;lt;summary&amp;gt; &lt;/span&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;/// 主地图控件的右键响应函数&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;/// &amp;lt;param name="sender"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;/// &amp;lt;param name="e"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (e.button == 2)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //弹出右键菜单&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_menuMap.PopupMenu(e.x,e.y,m_mapControl.hWnd);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="a"&gt;&lt;span style="color: #000000; font-family: arial;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="font-family: arial;"&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;4、编译运行&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;span style="color: #000000;"&gt;按&lt;/span&gt;&lt;span style="color: #000000;"&gt;F5&lt;/span&gt;&lt;span style="color: #000000;"&gt;编译运行程序，你会发现，原来右键菜单实现起来是这么的简单啊！&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888557.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html</id><title type="text">《ArcGIS Engine+C#实例开发教程》第四讲 状态栏信息的添加与实现</title><summary type="text">摘要：在上一讲中，我们完成了 MapControl 和PageLayoutControl两种视图的同步工作，本讲我们将完成状态栏信息的添加与实现。应用程序的状态栏一般用来显示程序的当前状态，当前所使用的工具。 GIS应用程序一般也在状态栏显示当前光标的坐标、比例尺等信息。学习完本讲内容，您将学会状态栏编程的基本方法，并且能够在我们的程序的状态栏中添加且显示以下信息：当前所用工具信息、当前比例尺、当...</summary><published>2010-11-26T03:24:00Z</published><updated>2010-11-26T03:24:00Z</updated><author><name>Happy Coding</name><uri>http://www.cnblogs.com/SunYu/</uri></author><link rel="alternate" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"/><content type="html">&lt;div id="textbody" class="content"&gt;&lt;div class="text_tag2"&gt;&lt;strong&gt;摘要：&lt;/strong&gt;在上一讲中，我们完成了 MapControl 和PageLayoutControl两种视图的同步工作，本讲我们将完成状态栏信息的添加与实现。应用程序的状态栏一般用来显示程序的当前状态，当前所使用的工具。 GIS应用程序一般也在状态栏显示当前光标的坐标、比例尺等信息。学习完本讲内容，您将学会状态栏编程的基本方法，并且能够在我们的程序的状态栏中添加且显示以下信息：当前所用工具信息、当前比例尺、当前坐标。 &lt;/div&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;教程目录：&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;strong&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888545.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第一讲 桌面GIS应用程序框架的建立&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888548.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第二讲 菜单的添加及其实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888551.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第三讲 MapControl与PageLayoutControl同步&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第四讲 状态栏信息的添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888555.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第五讲 鹰眼的实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888557.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第六讲 右键菜单添加与实现&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888559.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;教程Bug及优化方案1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888565.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现1&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888567.html"&gt;&lt;strong&gt;&lt;span style="color: #0000ff;"&gt;第七讲 图层符号选择器的实现2&lt;/span&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888573.html"&gt;第八讲 属性数据表的查询显示&lt;/a&gt;&lt;/p&gt;&lt;/strong&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;------------------------------------------------------------------&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在上一讲中，我们完成了 MapControl 和 PageLayoutControl 两种视图的同步工作，本讲我们将完成状态栏信息的添加与实现。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;应用程序的状态栏一般用来显示程序的当前状态，当前所使用的工具。 GIS 应用程序一般也在状态栏显示当前光标的坐标、比例尺等信息。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;学习完本讲内容，您将学会状态栏编程的基本方法，并且能够在我们的程序的状态栏中添加且显示以下信息： &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: #000000;"&gt;当前所用工具信息 &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #000000;"&gt;当前比例尺 &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: #000000;"&gt;当前坐标 &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;1、 &lt;/strong&gt;&lt;strong&gt;添加状态栏项目 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在设计视图中，点击窗体中的状态栏，在其属性面板中找到&amp;ldquo; Items &amp;rdquo;项，单击其右边的按钮，在下拉框中选择&amp;ldquo; StatusLabel &amp;rdquo;，单击&amp;ldquo;添加按钮&amp;rdquo;，依次添加四个 StatusLabel ，依次修改属性参数如下表所示： &lt;/span&gt;&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="49" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;序号 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="109" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Name 属性 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="84" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Text 属性 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="91" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Spring 属性 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="183" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;说明 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="49" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;1 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="109" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;MessageLabel &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="84" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;就绪 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="91" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;False &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="183" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当前所用工具信息 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="49" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;2 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="109" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Blank &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="84" valign="top"&gt;&lt;br /&gt;&lt;/td&gt;&lt;td width="91" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;True &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="183" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;占位 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="49" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;3 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="109" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ScaleLabel &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="84" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;比例尺 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="91" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;False &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="183" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当前比例尺 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="49" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;4 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="109" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;CoordinateLabel &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="84" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当前坐标 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="91" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;False &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="183" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当前坐标 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;设置好之后如下图所示： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color: #000000;"&gt;&lt;img src="http://www.gissky.net/Article/UploadFiles/200905/20090512085250200.jpg" border="0" alt="" /&gt; &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;Tips &lt;/strong&gt;&lt;strong&gt;： &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;我们设计出的状态栏最终如下所示： &lt;/span&gt;&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="54" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;就绪 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="265" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;（ Blank ） &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="113" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;比例尺 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td width="107" valign="top"&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;当前坐标 &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;Spring 属性表示可以按状态栏剩余空间自动伸缩。所以加入 Blank 项目，只是为了占个位子，以达到 ScaleLabel 和 CoordinateLabel 项目右对齐而 MessageLabel 项目左对齐的目的。 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;2、 &lt;/strong&gt;&lt;strong&gt;显示当前所用工具信息 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;首先添加 axToolbarControl1 的 OnMouseMove 事件 ( 相信大家看了以上的教程，已经知道怎么添加事件了吧，还不知道的建议再温习下前几讲的内容 ) 。在其事件响应函数代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private void axToolbarControl1_OnMouseMove(object sender, IToolbarControlEvents_OnMouseMoveEvent e) &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 取得鼠标所在工具的索引号 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;int index = axToolbarControl1.HitTest(e.x, e.y, false); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;if (index != -1) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 取得鼠标所在工具的 ToolbarItem &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;IToolbarItem toolbarItem = axToolbarControl1.GetItem(index); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 设置状态栏信息 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;MessageLabel.Text = toolbarItem.Command.Message; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;else &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;MessageLabel.Text = " 就绪 "; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;3、 &lt;/strong&gt;&lt;strong&gt;显示当前比例尺 &lt;/strong&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加 axMapControl1 的 OnMouseMove 事件，其代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e) &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;// 显示当前比例尺 &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;ScaleLabel.Text = " 比例尺 1:" + ((long)this.axMapControl1.MapScale).ToString(); &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;4、 &lt;/strong&gt;&lt;strong&gt;显示当前坐标 &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;显示当前坐标也是 axMapControl1 的 OnMouseMove 事件中响应，故只要在 axMapControl1_OnMouseMove 函数中添加如下代码即可： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;// 显示当前坐标 &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;CoordinateLabel.Text = " 当前坐标 X = " + e.mapX.ToString() + " Y = " + e.mapY.ToString() + " " + this.axMapControl1.MapUnits; &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="color: #000000;"&gt;按F5 编译运行，可以看到，我们的程序已经能够正常工作了。但是细心的你可能会发现，当前坐标的后面的坐标单位为&amp;ldquo; esriUnknownUnits&amp;rdquo;或&amp;ldquo; esriMeters &amp;rdquo;之类，即系统在正常单位的前面加上了&amp;ldquo; esri &amp;rdquo;，追求完美的我们自然看得不舒服。那就进行简单的替换吧。 &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;首先定义个全局坐标单位变量 sMapUnits ，如下所示： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private string sMapUnits; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;再 Form1_Load 函数中进行初始化： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Unknown";&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;添加 axMapControl1 控件的 OnMapReplaced 事件，在事件响应函数中进行坐标单位替换，代码如下： &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="0" cellspacing="1" cellpadding="10" width="100%" bgcolor="#0099cc"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="line-height: 18px;" width="100%" bgcolor="#ddedfb"&gt;&lt;span style="color: #000000;"&gt;&amp;nbsp;private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e) &lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;esriUnits mapUnits = axMapControl1.MapUnits; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;switch (mapUnits) &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;{ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriCentimeters: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Centimeters"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriDecimalDegrees: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Decimal Degrees"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriDecimeters: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Decimeters"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriFeet: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Feet"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriInches: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Inches"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriKilometers: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Kilometers"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriMeters: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Meters"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriMiles: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Miles"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriMillimeters: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Millimeters"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriNauticalMiles: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "NauticalMiles"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriPoints: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Points"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriUnknownUnits: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Unknown"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;case esriUnits.esriYards: &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;sMapUnits = "Yards"; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;break; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;} &lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="color: #000000;"&gt;&lt;strong&gt;5、 &lt;/strong&gt;&lt;strong&gt;编译运行 &lt;/strong&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;按 F5 编译运行程序。如果你足够细心的话，相信你已经成功了！ &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #000000;"&gt;在本讲中，介绍中 StatusStrip 控件的基本使用方法和 AE 中当所用工具信息、当前比例尺和当前坐标的显示调用方法。 &lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/SunYu/aggbug/1888553.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/SunYu/archive/2010/11/26/1888553.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
