在Outlook中添加可折叠面板

时间:2013-02-26 07:46:00

标签: c# winforms panel outlook-addin customtaskpane

我正在编写一个outlook插件,我正在寻找一种方法让屏幕右侧的面板可以折叠。此时,显示或删除面板。你也可以缩放它,但这不是我想要的。我已经尝试添加2个按钮来改变我的面板的宽度,但结果是我的面板宽度不能小于约60px并且标题仍然存在。这是我用来添加窗格的代码:

 Microsoft.Office.Tools.CustomTaskPane ctp;
 private HistoryPane ctrl;
 string title = "Task History";
 ctrl = new HistoryPane(mailItem);
 ctp = Globals.ThisAddIn.CustomTaskPanes.Add(ctrl, title);
 ctp.Visible = true;
 ctp.Width = 460;
 ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight;

任何删除标题的帮助,使面板更薄(大约25px),使其可折叠或所有这些都将非常感激。

1 个答案:

答案 0 :(得分:2)

以下是解决方案:

1 - 在您的用户控件中创建一个公共方法,如下所示:

    private Microsoft.Office.Tools.CustomTaskPane _ctp;
    public void SetControl(ref Microsoft.Office.Tools.CustomTaskPane ctp)
    {
        _ctp = ctp;
    }

2 - 在用户控件中添加任何按钮以扩展和最小化,并在点击事件上的最小化按钮下面放置代码:

    private void btnMinimize_Click(object sender, EventArgs e)
    {
        _ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionTop;
        _ctp.Height = 50;
    }

3 - 在上面的代码之后使用下面的粗体代码:

Microsoft.Office.Tools.CustomTaskPane ctp;
private HistoryPane ctrl;
string title = "Task History";
ctrl = new HistoryPane(mailItem);
ctp = Globals.ThisAddIn.CustomTaskPanes.Add(ctrl, title);
ctp.Visible = true;
ctp.Width = 460;
ctp.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionRight;

ctrl.SetControl(ref ctp);

希望这会奏效。