标签: customtaskpane

将新组件放在JXTaskPane上

JXTaskPaneJava中Swing的使用有一个标题栏.其中有一个扩展/收缩按钮.我希望能够在标题栏中添加我自己的操作,该标题栏将显示在展开/收缩按钮旁边.

我怎样才能做到这一点?我尝试了很多次,但没有得到预期的结果.我创建了一个新的JButton并将其位置设置在标题栏坐标上,但它已添加到元素中.

我附上了一个屏幕截图,在标题栏中显示了一个帮助类型操作,以显示我的意思.

任务图片

java swing swingx customtaskpane jxtaskpane

13
推荐指数
1
解决办法
931
查看次数

在VSTO Word插件中为多个文档创建和管理自定义任务窗格

我正在使用Visual Studio 2008中的VSTO开发Word 2007-2010插件.在我的插件中,我需要为每个打开的word文档创建一个自定义任务窗格.基本上,我需要为每个文档创建一个任务窗格,在文档窗口中显示正确的任务窗格,在文档关闭时执行某些操作,然后删除任务窗格及其所有引用.

这是我到目前为止所做的:

任务窗格创建

我为每个新的,打开的或现有的加载文档创建一个自定义任务窗格,如下所示:

((ApplicationEvents4_Event) Application).NewDocument += CreateTaskPaneWrapper;
Application.DocumentOpen += CreateTaskPaneWrapper;
foreach (Document document in Application.Documents)
{
    CreateTaskPaneWrapper(document);
}
Run Code Online (Sandbox Code Playgroud)

在CreateTaskPaneWrapper方法中,如果文档的任务窗格已存在,则检查Dictionary <Document,TaskPaneWrapper>.我这样做是因为如果我尝试打开已打开的文档,则会触发open事件.如果它不存在,我创建一个新的TaskPaneWrapper类.在其构造函数中,我创建了一个新的任务窗格,并将其添加到CustomTaskPanes集合中

Globals.ThisAddIn.CustomTaskPanes.Add(taskPane, "Title");
Run Code Online (Sandbox Code Playgroud)

根据MSDN,这将任务窗格与当前活动窗口相关联.

任务窗格关闭

Document.Close和Application.DocumentBeforeClose事件都不适合我,因为它们在用户发出关闭文档的确认之前触发.所以我在TaskPaneWrapper类中使用Microsoft.Office.Tools.Word.Document.Shutdown事件,如下所示:

_vstoDocument = document.GetVstoObject();
_vstoDocument.Shutdown += OnShutdown;

private void OnShutdown(object sender, EventArgs eventArgs)
{
    Globals.ThisAddIn.CustomTaskPanes.Remove(_taskPane);
    //additional shutdown logic
}
Run Code Online (Sandbox Code Playgroud)

所有这些似乎都很好用,创建了任务窗格,绑定到相应的窗口,并成功删除.但是,我仍有一个问题 - 当我启动Word时,会打开一个空白文档.如果我然后打开现有文档而不更改空白文档,则删除空白文档及其窗口,而不会触发Document.Close,Application.DocumentBeforeClose和Microsoft.Office.Tools.Word.Document.Shutdown事件.因为未调用OnShutdown并且未删除空白文档的任务窗格,所以下一个文档窗口包含两个任务窗格 - 非常新的任务窗格,以及第一个(孤立的)任务窗格.如何删除此孤立的任务窗格?访问已删除的文档或窗口引用会抛出COMException("对象已被删除").我暂时使用这个黑客:

//A property in my TaskPaneWrapper class
public bool IsWindowAlive()
{
    try
    {
        var window = _vstoDocument.ActiveWindow;
        return true;
    }
    catch (COMException)
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

在CreateTaskPaneWrapper方法中,我检查此属性是否包含所有现有包装器,并关闭属性为false的那些包装器.当然,捕捉异常有点贵,而且这个解决方案非常糟糕,所以我想知道,有更好的解决方案吗? …

vsto add-in ms-word office-interop customtaskpane

10
推荐指数
3
解决办法
6033
查看次数

包含多个打开的工作簿的自定义任务窗格

我已成功实现了Microsoft示例"演练:使用功能区按钮同步自定义任务窗格",如下所示:http: //msdn.microsoft.com/en-us/library/bb608590.aspx

最初我遇到了一个问题,任务窗格没有显示,结果是我的加载项和微软的"分析工具包"之间发生了一些冲突.禁用Analysis Toolpack后,自定义任务窗格开始按预期显示和隐藏.

然后,当用户按下按钮时,我编写了一些代码来更改所选范围内的单元格.这似乎工作得很好 - 直到我打开另一本工作簿!每个工作簿窗口都有自己的加载项功能区,但是当我单击切换按钮打开/关闭自定义任务窗格时,它只会打开/关闭创建的第一个窗口的自定义任务窗格.这与我单击切换按钮的窗口无关.

该代码在ThisAddIn_Startup中实例化CustomTaskPane对象(就像在示例代码中一样).我唯一添加的是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 + "*";
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

代码的其余部分就像在示例中一样.

有没有办法更改示例,以便它可以用于打开多个工作簿?我想要的是相同的加载项出现在每个工作簿窗口中,具有相同的功能区和相同的自定义窗格.当然,要将任何功能区操作(例如按下按钮)路由到出现在同一窗口中的自定义任务窗格.

c# ribbon excel-interop customtaskpane

7
推荐指数
1
解决办法
2032
查看次数

在Excel VSTO中拖放到自定义任务窗格

阿尔,我被卡住了!

我正在编写一个Excel加载项,打开一个自定义任务窗格(它是一种数据分析工具类型的东西).为了提高工作效率,我希望用户能够将对象(例如文件或电子邮件附件)拖到该任务窗格的一部分上进行处理,而不必通过一个或多个文件对话框.

问题是Excel似乎完全覆盖了自定义任务窗格及其包含的控件的拖放属性,因此当我将文件拖放到任务窗格时,Excel只是尝试将其作为电子表格打开(如果它是受支持的文件类型),我的DragDrop事件永远不会触发.

有没有办法让Excel停止这样做,以便将drop事件发送到任务窗格?

c# excel vsto drag-and-drop customtaskpane

6
推荐指数
1
解决办法
2199
查看次数

Excel自定义任务窗格未显示

我正在excel VSTO加载项中显示一个自定义任务窗格,正在构建它并显示为:

var ctrl = new CellTaskPane();
var pane = CustomTaskPanes.Add(ctrl, "Custom Sheet");
pane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight;
pane.DockPositionRestrict = Office.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange;
pane.Visible = true;
Run Code Online (Sandbox Code Playgroud)

这是在ThisAddin.cs文件中完成的,并且在Debug会话下以及通过单击一次安装程序安装的加载项下,都可以在我的计算机上正常运行。

但是,将加载项安装到同事的机器上被证明很麻烦。

加载项正在运行,并且上下文菜单/功能区运行正常,但是窗格只是拒绝显示。

我在功能区上有一个切换按钮,可以切换Visible窗格上的属性,甚至单击也不会强制窗格显示。

任何帮助都将不胜感激,谷歌对此毫无用处。

谢谢。


我应该提一下,这CellTaskPane只是UserControlMSDN上的文档所规定的:http : //msdn.microsoft.com/en-us/library/aa942846.aspx

excel vsto excel-addins customtaskpane excel-2013

5
推荐指数
1
解决办法
5533
查看次数

在Office2013中设置VSTO CustomTaskPane DockPosition很慢

我正在制作一个具有CustomTaskPane的Excel加载项.在加载时,我尝试设置自定义任务窗格的dockposition,height和width.设置这些属性几乎立即在Excel2010上执行,但使用Excel2013几乎需要两秒钟.

我在MSDN上看到了一个关于此的问题,但没有给出真正的答案.其他人是否有这个问题,是否有工作场所?

vsto ms-office customtaskpane

5
推荐指数
1
解决办法
470
查看次数

将图像添加到Outlook中的自定义任务窗格标题 - VB.Net

我使用下面给出的代码在VB.Net for Outlook中创建了一个自定义任务窗格,我想在用户控件的标题(图像和按钮)中添加更多内容,而不仅仅是标题.有没有办法实现这个目标?

myUserControl1 = New OutlookTaskPane
        myUserControl1.TabStop = True
        Dim width As Integer = myUserControl1.Width
        myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "My Custom Task Pane")
        myCustomTaskPane.Width = width
        myCustomTaskPane.Visible = True
        myCustomTaskPane.DockPositionRestrict = Microsoft.Office.Core.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoChange
Run Code Online (Sandbox Code Playgroud)

请告诉我是否还有其他方法可以实现这一目标.谢谢.

vb.net customization outlook customtaskpane

5
推荐指数
1
解决办法
464
查看次数

当我以编程方式打开文档时,MS Word自定义任务窗格消失

我正在尝试创建一个简单的MS Word插件(主要是为了探索功能).插件添加了自定义任务窗格,并在功能区中添加了组.功能区控件包括一个用于控制自定义任务窗格可见性的复选框,以及一个用于打开文档的按钮.当我在MS Word中测试插件时,任务窗格正确显示,并且复选框正常工作.问题是,只要单击按钮并打开新文档,任务窗格就会隐藏,复选框不再控制任务窗格的可见性.出了什么问题?如何显示自定义任务窗格?

这是一个简单版本的插件:

public partial class ThisAddIn
{
    private MyUserControl _myUserControl;
    private CustomTaskPane _myCustomTastPane;
    private OpenFileDialog _dialog;

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        _dialog = new OpenFileDialog { Filter = "Doc File (*.rtf)|*.rtf", RestoreDirectory = true };
        _myUserControl = new MyUserControl();
        _myCustomTastPane = this.CustomTaskPanes.Add(_myUserControl, "My Task Pane");
        _myCustomTastPane.Visible = true;

        Globals.Ribbons.MyRibbon.ShowPane.Click += ShowClicked;
        Globals.Ribbons.MyRibbon.LoadDoc.Click += LoadFile;
    }

    private void ShowClicked(object sender, RibbonControlEventArgs ribbonControlEventArgs)
    {
        _myCustomTastPane.Visible = Globals.Ribbons.MyRibbon.ShowPane.Checked;
    }

    void LoadFile(object sender, RibbonControlEventArgs e)
    {
        if (_dialog.ShowDialog() != DialogResult.OK) …
Run Code Online (Sandbox Code Playgroud)

.net vsto add-in ms-word customtaskpane

5
推荐指数
1
解决办法
2247
查看次数

如何获取功能区控件类上的自定义任务窗格对象

开发一个 Excel vsto 项目,我如何处理类中的自定义任务窗格,它是一个功能区控件。例如,当我单击功能区控件的按钮时,我想显示自定义任务窗格。

朵拉

c# excel vsto ribbon customtaskpane

2
推荐指数
1
解决办法
7552
查看次数