4 Stimmen

Gibt es eine Möglichkeit, die Breite des linken Taskbereichs, der ein Add-In enthält, zu kontrollieren?

Ich habe ein Excel 2007 Add-In mit der VS2010 VSTO-Bibliothek erstellt. Wenn ich ein neues Objekt des Add-Ins erstelle, erstelle ich auch eine Excel-Taskleiste links, indem ich den folgenden Code verwende:

Microsoft.Office.Tools.CustomTaskPane taskPaneAddIn;
MyAddIn addIn;

addIn = new MyAddIn(this.Application);
taskPaneAddIn = this.CustomTaskPanes.Add(addIn, "Mein Add-In");
taskPaneAddIn.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft;
taskPaneAddIn.Width = addIn.Size.Width + 5;

Das Add-In ist eine Windows-Benutzersteuerung mit eigenen Abmessungen.

Der obige Code scheint nicht zu funktionieren, da die Breite von taskPaneAddIn immer auf dem Excel fixiert ist. Der Benutzer muss immer manuell die Taskleiste erweitern, um die gesamte Breite der Steuerung zu sehen.

Gibt es einen programmierbaren Weg, um die Breite der Taskleiste einzustellen?

16voto

Mathias Punkte 14811

Ich denke, die Ursache für Ihr Problem ist, dass, wenn Sie die Steuerelemente zu den benutzerdefinierten Taskleisten hinzufügen, ihre Breite auf Null gesetzt wird (ich denke, es hat damit zu tun, dass das Steuerelement angedockt wird). Um Ihr Problem zu lösen, können Sie folgendes tun und die Breite Ihres Steuerelements abrufen, bevor es hinzugefügt wird:

var control = new TaskPaneControl();
var width = control.Width;
var taskPane = CustomTaskPanes.Add(control, "Wide");
taskPane.Width = width;
taskPane.Visible = true;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X