Benutzer mit den meisten Antworten
Custom Task Pane bleibt unsichtbar in Excel 2013

Frage
-
Hallo zusammen,
ich habe das Problem, dass ein mittels Visual Studio 2013 für Excel 2013 erstelltes Add-In einfach in Excel nicht sichtbar ist. Beim Debuggen wird mir allerdings für das entsprechende CustumTaskPane.Visible "true" angezeigt.
Aus der Ribbon.cs:
[ComVisible(true)] public class Ribbon1 : Office.IRibbonExtensibility { private Office.IRibbonUI ribbon; public Ribbon1(){} public bool IsSnippetsPressed(IRibbonControl control) { if (control.Id.Equals("toggleButton99")) return Globals.ThisAddIn.CustomTaskPanes[0].Visible; else return false; } public void SnippetsToggle(IRibbonControl control, bool value) { if (control.Id.Equals("toggleButton99")) Globals.ThisAddIn.CustomTaskPanes[0].Visible = value; } public void AendereButton(string ButtonID) { this.ribbon.InvalidateControl(ButtonID); } public void ToggleButtonOnAction(IRibbonControl control, bool pressed) { if (control.Id.Equals("toggleButton99")) Globals.ThisAddIn.CustomTaskPanes[0].Visible = pressed; } public System.Drawing.Bitmap holeImage(IRibbonControl control) { System.Drawing.Bitmap result = null; if (control.Id.Equals("toggleButton99")) result = ExcelAddIn.Properties.Resources.market; return result; } public string GetCustomUI(string ribbonID) { return GetResourceText("ExcelAddIn.Ribbon1.xml"); } public void Ribbon_Load(Office.IRibbonUI ribbonUI) { this.ribbon = ribbonUI; } private static string GetResourceText(string resourceName) { Assembly asm = Assembly.GetExecutingAssembly(); string[] resourceNames = asm.GetManifestResourceNames(); for (int i = 0; i < resourceNames.Length; ++i) { if (string.Compare(resourceName, resourceNames[i], StringComparison.OrdinalIgnoreCase) == 0) { using (StreamReader resourceReader = new StreamReader(asm.GetManifestResourceStream(resourceNames[i]))) { if (resourceReader != null) { return resourceReader.ReadToEnd(); } } } } return null; } }
aus der ThisAddin.cs
Microsoft.Office.Tools.CustomTaskPane myPane = null; Ribbon1 rib = null; protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject() { rib = new Ribbon1(); return rib; } private void ThisAddIn_Startup(object sender, System.EventArgs e) { UserControl1 cont = new UserControl1(); myPane = this.CustomTaskPanes.Add(cont, "xx"); myPane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight; myPane.VisibleChanged += new EventHandler(myPane_VisibleChanged); myPane.Visible = true; myPane.Width = 400; } private void myPane_VisibleChanged(object sender, EventArgs e) { if (sender == myPane) rib.AendereButton("toggleButton99"); }
und die Ribbon.xml:
<?xml version="1.0" encoding="UTF-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> <ribbon startFromScratch="false"> <tabs> <tab id="xxx" label="xxx" visible="true"> <group id="MyGroup12" label="Untersuchen"> <toggleButton id="toggleButton99" size="large" getImage="holeImage" label="Recherche" onAction="ToggleButtonOnAction" getPressed="IsSnippetsPressed" visible="true" /> </group> </tab> </tabs> </ribbon> </customUI>
Wenn ich das Projekt in VS 2013 kompiliere und ausführe, startet Excel, dabei flackert kurz der Startbildschirm, es erscheint für den Bruchteil einer Sekunde das Taskpane (aber nicht rechts am Rand, sondern mittig) und verschwindet wieder. Dann kann ich den Button aus dem Ribbon so oft drücken wie ich will, das Taskpane bleibt unsichtbar. Allerdings wechselt der Button wie gewünscht mit dem Klicken. Hat jemand einen Tipp?
Danke vorab.
- Bearbeitet Ronald Siegel Sonntag, 23. März 2014 08:09 Fehler im Code, ändert aber nichts am Verhalten des Addins
Antworten
-
Nachdem ich nun Office einer Reparatur unterzog, funktioniert es wieder, wie gewünscht.
- Als Antwort markiert Ronald Siegel Sonntag, 23. März 2014 08:54
Alle Antworten
-
Nachdem ich nun Office einer Reparatur unterzog, funktioniert es wieder, wie gewünscht.
- Als Antwort markiert Ronald Siegel Sonntag, 23. März 2014 08:54
-
Es freut uns, dass Du Dein Problem lösen konntest und danke, dass Du Deine Lösung hier im Forum gepostet hast. Jetzt können auch andere die das gleiche Problem haben unter Umständen davon profitieren.
Ciprian Bogdan, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip„Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.