我在 ArcMap 的同一工具栏中有一个下拉菜单和一个 Icommand 按钮。当我使用命令按钮时,我似乎无法访问下拉列表选项。
如何找到下拉列表,以便找出用户刚刚选择的内容?
谢谢
斯科特
我在 ArcMap 的同一工具栏中有一个下拉菜单和一个 Icommand 按钮。当我使用命令按钮时,我似乎无法访问下拉列表选项。
如何找到下拉列表,以便找出用户刚刚选择的内容?
谢谢
斯科特
如果您的下拉菜单在实现 IToolControl 的命令中,您应该能够使用 ICommandbars.Find 来查找命令,然后将其转换为 MyToolControl,然后使用 MyToolControl.Selection。选择是您需要实现的一种访问包含下拉列表的方法。
另一种(更多 MVC 风格)方法是让 IToolControl 更新自定义 IExtension 上的属性(例如 MyExtension.MyProperty),该方法用于在属性更改时引发事件,以便其他工具可以同步。
我用这段代码找到了下拉菜单……然后我更深入地把下拉菜单拉出来。
var commandBars= m_application.Document.CommandBars;
ESRI.ArcGIS.esriSystem.UID pUID = new UIDClass();
pUID.Value = "{A6D2046E-F92C-440f-B54B-91899B4F667E}";
var commmandItem = commandBars.Find(pUID, false, false);
然后下拉菜单位于:
(ComboBox)((LOSBaseCampExample.LOSSurroundBaseCampControl)(commmandItem.Command)).Controls[0])
注意: LOSBaseCampExample.LOSSurroundBaseCampControl 是我的工具的名称......你会有所不同。