c# - 在 Outlook 中添加可折叠面板

标签 c# winforms panel outlook-addin customtaskpane

我正在编写一个 Outlook 加载项,并且正在寻找一种方法来使停靠在屏幕右侧的面板可折叠。目前,该面板要么显示,要么删除。您也可以缩放它,但这不是我想要的。我已经尝试添加 2 个按钮来更改面板 onclick 的宽度,但结果是我的面板宽度不能小于约 60px,并且标题仍然存在。这是我用来添加 Pane 的代码:

 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;

任何帮助删除标题、使面板更薄(约 25 像素)、使其可折叠或所有这些的帮助将不胜感激。

最佳答案

下面是解决方案:

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

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

2 - Add any button to Expend and Minimize in your User Control and put below codes on Minimize button on click event:

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

3 - After your code above use bold line code below:

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);

希望这会起作用。

关于c# - 在 Outlook 中添加可折叠面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083916/

相关文章:

javascript - jQuery 移动响应面板滑动打开/关闭关闭

c# - mono 的日志文件在哪里?

c# Windows 窗体应用程序在错误后使进程继续运行

.net - 如何消除透明背景图片中的 "halo"

javascript - jquery 移动面板事件未触发

c# - 无法访问已处置的对象

c# - 从路径中删除“..”和相关文件夹的最快方法?

c# - CLR - 引用地址存储在哪里?

c# - 获取 "Tuple element name is inferred. Please use language version 7.1 or greater to access an element by its inferred name."

C# Com 端口关闭