OK, he actualizado el borrador con algunas de las sugerencias pero todavía estoy teniendo algunos problemas. Estoy tratando de crear un botón personalizado en arcmap que cuando se presiona editar una de las barras de herramientas de contenido. Hacer cosas como añadir o quitar herramientas de una barra de herramientas. Un ejemplo sería la creación de un botón que al pulsarlo se quita o cambia todo el texto/font herramientas de edición de la barra de herramientas draw.
He estado Mirando con IToolbarControl2 http://help.arcgis.com/en/sdk/10.0/arcobjects_net/componenthelp/index.html#/IToolbarControl2_Interface/0016000003m7000000/ Parece que para dar acceso a diferentes funciones miembro que me deja editar lo que yo quiero. por desgracia no estoy seguro de cómo hacer referencia a la barra de herramientas específica que quiero editar.
He hecho algunas modificaciones y actualmente, el código se ejecuta y, a continuación, se bloquea cuando intento definir axToolbarControl1.AddToolbarDef a través de:
axToolbarControl1.AddToolbarDef(uID, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
El actual proyecto de código es la siguiente:
///Code to add or remove tools from a toolbar using System;
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.IO;
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.ArcMap;
using ESRI.ArcGIS.ArcMapUI;
using ESRI.ArcGIS.Controls;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.SystemUI;
using ESRI.ArcGIS;
namespace RemoveAllTools2
{
public class RemoveAllTools2 : ESRI.ArcGIS.Desktop.AddIns.Button
{
IApplication m_application; //ArcMap application
IMxDocument m_mxDocument; //ArcMap document
public ESRI.ArcGIS.Controls.ToolbarControl axToolbarControl1;
public UID uID = new UIDClass();
public RemoveAllTools2()
{
MessageBox.Show("setup start");
m_application = ArcMap.Application;
MessageBox.Show("m_application set");
UID uID = new UIDClass();
uID.Value = "esriArcMapUI.DrawToolBar";
MessageBox.Show("UID set");
//code hangs here
axToolbarControl1.AddToolbarDef(uID, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);
//code hangs here
MessageBox.Show("axtoolbar set");
}
protected override void OnClick()
{
MessageBox.Show("clicked");
IToolbarControl2 ttoolbarControl = axToolbarControl1.Object as IToolbarControl2;
MessageBox.Show("toolbarControl set");
uID.Value = "esriArcMapUI.FontNameControl";
int toolFindIndex = ttoolbarControl.Find(uID);
if (toolFindIndex!=-1)
{
ttoolbarControl.Remove(toolFindIndex);
MessageBox.Show("Tool remove run finished ");
}
else
{
MessageBox.Show("Tool not found");
}
MessageBox.Show("IF run finished ");
}
protected override void OnUpdate()
{
}
}
}
Cualquier ayuda o comentario será muy apreciada.