ho implementato con successo l'esempio di Microsoft "Soluzione: Sincronizzazione di un riquadro attività personalizzato con un nastro del tasto" trovato qui: http://msdn.microsoft.com/en-us/library/bb608590.aspxpersonalizzato riquadro attività con più cartelle di lavoro aperte
Inizialmente mi sono imbattuto in un problema con il riquadro attività non mostrato, che è risultato essere il risultato di un conflitto tra il mio componente aggiuntivo e il "Toolpack di analisi" di Microsoft. Una volta disabilitato Analysis Toolpack, il riquadro delle attività personalizzate ha iniziato a mostrare e nascondere come previsto.
Ho quindi scritto del codice per modificare le celle in un intervallo selezionato quando l'utente preme un pulsante. Sembrava funzionare bene, fino a quando non ho aperto un'altra cartella di lavoro! Ogni finestra della cartella di lavoro ha il proprio nastro aggiuntivo, ma quando ho fatto clic sul pulsante di attivazione/disattivazione per aprire/chiudere il riquadro delle attività personalizzate, si apriva/chiudeva il riquadro delle attività personalizzate per la prima finestra creata. Questo è indipendentemente da quale finestra faccio clic sul pulsante di attivazione.
Il codice crea un'istanza dell'oggetto CustomTaskPane in ThisAddIn_Startup (proprio come nel codice di esempio). L'unica cosa che ho veramente aggiunto è l'azione pulsante nella UserControl:
using xl = Microsoft.Office.Interop.Excel;
namespace SynchronizeTaskPaneAndRibbon
{
public partial class TaskPaneControl : UserControl
{
public TaskPaneControl()
{
InitializeComponent();
}
private void actionButton1_Click(object sender, EventArgs e)
{
xl.Range selection_rng = Globals.ThisAddIn.Application.Selection;
foreach (xl.Range cell in selection_rng.Cells)
{
if (cell.Value is string)
{
string v = cell.Value;
cell.Value = v + "*";
}
}
}
}
}
Il resto del codice è così come è l'esempio.
C'è un modo per modificare l'esempio in modo che funzioni per più cartelle di lavoro aperte? Quello che voglio è che lo stesso componente aggiuntivo appaia in ogni finestra della cartella di lavoro, con la stessa barra multifunzione e lo stesso pannello personalizzato. E, naturalmente, per fare in modo che alcune azioni del nastro (come la pressione di un pulsante) si dirigano verso il riquadro delle attività personalizzate che appare all'interno della stessa finestra.