Ich habe ein PowerPoint-VSTO-Addin mit einem benutzerdefinierten Aufgabenbereich erstellt - und ein Menüband, in dem ein Umschaltknopf den Anzeige-/Verdecken-Status des benutzerdefinierten Aufgabenbereichs definiert. Grundlage dafür waren die Microsoft Walkthrough-Informationen für den benutzerdefinierten Aufgabenbereich und die Synchronisierung der Multifunktionsleiste mit dem Aufgabenbereich. Bis jetzt läuft alles gut mit dem ersten PowerPoint-Fenster. Ich kann den Aufgabenbereich im zweiten und dritten PowerPoint-Fenster anzeigen, aber die Umschaltfläche in der Multifunktionsleiste reagiert nur auf das zuletzt geöffnete/erstellte PowerPoint-Fenster und nicht auf den im aktiven PowerPoint-Fenster angezeigten/ausgeblendeten Aufgabenbereich.C# VSTO-Powerpoint-TaskPanes in separaten Fenstern
Ich habe eine anderen Thread gefunden, die hier genau das gleiche Problem, erklärt: C# VSTO-Powerpoint-TaskPanes in separate windows.
Aber ich verstehe nicht, die Antwort weder ich weiß nicht, wie ein Powerpoint-Inspector Wrapper zu implementieren.
Ich bin neu in C# und nur ein Keyword wie "Inspector Wrapper" ist zu wenig für mich. Ich bin schon Stunden damit beschäftigt, im Internet zu suchen, war aber bis jetzt nicht erfolgreich.
Gibt es eine Chance, ein KOMPLETT Code-Beispiel für PowerPoint zu bekommen, wie das funktioniert, was muss getan werden?
-Code hinzugefügt: Ich habe den Code aus dem Allgemeinen Durchlauf: https://msdn.microsoft.com/en-us/library/bb608590.aspx und änderte es mit einem Ereignis für neue Präsentationen:
Der Code für die ThisAddIn.cs ist wie folgt:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;
namespace PowerPointAddIn1
{
public partial class ThisAddIn
{
private TaskPaneControl taskPaneControl1;
private Microsoft.Office.Tools.CustomTaskPane taskPaneValue;
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.AfterNewPresentation += new Microsoft.Office.Interop.PowerPoint.EApplication_AfterNewPresentationEventHandler(NewPresentation);
//taskPaneControl1 = new TaskPaneControl();
//taskPaneValue = this.CustomTaskPanes.Add(taskPaneControl1, "MyCustomTaskPane");
//taskPaneValue.VisibleChanged += new EventHandler(taskPaneValue_VisibleChanged);
}
void NewPresentation(Microsoft.Office.Interop.PowerPoint.Presentation oPres)
{
PowerPoint.Application app = this.Application;
PowerPoint.DocumentWindow docWin = null;
foreach (PowerPoint.DocumentWindow win in Globals.ThisAddIn.Application.Windows)
{
if (win.Presentation.Name == app.ActivePresentation.Name)
{
docWin = win;
}
}
this.taskPaneControl1 = new TaskPaneControl();
this.taskPaneValue = this.CustomTaskPanes.Add(taskPaneControl1, "MyCustomTaskPane", docWin);
this.taskPaneValue.VisibleChanged += new EventHandler(taskPaneValue_VisibleChanged);
}
private void taskPaneValue_VisibleChanged(object sender, System.EventArgs e)
{
Globals.Ribbons.ManageTaskPaneRibbon.toggleButton1.Checked =
taskPaneValue.Visible;
}
public Microsoft.Office.Tools.CustomTaskPane TaskPane
{
get
{
return taskPaneValue;
}
}
private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
{
}
#region VSTO generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InternalStartup()
{
this.Startup += new System.EventHandler(ThisAddIn_Startup);
this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
}
#endregion
}
}
Bitte teilen Sie Ihre Code-Studien mit uns – Marcel
ich den Code aus dem Generaldurchlauf nahm: https://msdn.microsoft.com/en-us/library/bb608590.aspx –
Sind Sie auf 2007 ausgerichtet? Wenn Sie es nicht sind, sagt die akzeptierte Antwort, dass die Lösung mit der 'CustomTaskPane'-Sammlung zu tun hat, nicht mit' InspectorWrapper'. – Chris