如何从 ArcObjects 中的命令按钮获取下拉选项?

发布于 2024-09-02 00:40:27 字数 117 浏览 13 评论 0原文

我在 ArcMap 的同一工具栏中有一个下拉菜单和一个命令按钮。当我使用命令按钮时,我似乎无法访问下拉菜单选择。

如何找到下拉菜单以便了解用户刚刚选择的内容?

谢谢

斯科特

I have a dropdown and a Icommand button in the same toolbar in ArcMap. I can't seem to get access to the dropdowns selection when I am using the command button.

How can I find the dropdown so I can find out what the user just selected?

Thanks

Scott

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无所的.畏惧 2024-09-09 00:40:27

如果您的下拉列表位于实现 IToolControl 的命令中,您应该能够使用 ICommandbars.Find 查找该命令,然后将其转换为 MyToolControl,然后使用 MyToolControl.Selection。选择是您需要实现的一种方法,用于访问所包含的下拉列表。

另一种(更像MVC)方法是让IToolControl 更新自定义IExtension 上的属性(例如MyExtension.MyProperty),该方法的实现是在属性更改时引发事件,以便其他工具可以同步。

If your dropdown is within a command that implements IToolControl, you should be able to use ICommandbars.Find to find the command, then cast it to MyToolControl, then use MyToolControl.Selection. Selection is a method you'll need to implement that accesses the contained dropdown.

Another (more MVC-ish) way is to have the IToolControl update a property on a custom IExtension (e.g. MyExtension.MyProperty), which is implemented to raise an event when the property has changed so that other tools can be in synch.

冰魂雪魄 2024-09-09 00:40:27

我用这段代码找到了下拉菜单...然后我深入一点以拉出下拉菜单。

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 是我的工具的名称...您的会有所不同。

I found the Drop Down with this code... Then I dove a little Deeper to pull the dropdown out.

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);

Then the Dropdown was at:

(ComboBox)((LOSBaseCampExample.LOSSurroundBaseCampControl)(commmandItem.Command)).Controls[0])

Note: LOSBaseCampExample.LOSSurroundBaseCampControl was the name of MY tool... Your will be different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文