使用 C# Interop 隐藏 MS-Project 中的列
Hide a column in MS-Project with C# Interop
我正在 Visual Studio 上做一个 WinForm 程序,它自动创建和自动化 MS-Project 文件。
我使用了那些参考资料:
Microsoft Office 16.0 Object Library
Microsoft Office Project 16.0 Object Library
Microsoft Project Task Launch Control
在我的 MS-Project 文件中的某个位置,我想自定义 table 中列的显示。
为此,我使用了 TableEditEx 函数。我已经制作了一个新的自定义专栏,如下所示:
Microsoft.Office.Interop.MSProject.Application projApp = new Microsoft.Office.Interop.MSProject.Application();
projApp.Application.SelectTaskColumn(Column: "Add New Column");
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, NewName: "Progression", NewFieldName: "Text1", Title: "Completion", ShowInMenu: true, Width: 12);
projApp.Application.TableApply(Name: "&Entry");
现在我想隐藏列 "Resource Names" 例如。为此,我尝试了以下代码:
projApp.Application.SelectTaskColumn(Column: "Resource Names");
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, Create: false, ShowInMenu: false);
projApp.Application.TableApply(Name: "&Entry");
但它似乎除了选择列之外没有做任何事情。
我在这里研究过 :
好的,
我自己找到了解决办法。我试过做一个宏来获取 VBA 代码来隐藏一列,我得到了这个:
SelectTaskColumn Column:="Resource Names"
ColumnDelete
然后我用 C# 代码转换了它:
projApp.Application.SelectTaskColumn(Column: "Resource Names");
projApp.Application.ColumnDelete();
成功了,谢谢我!
要隐藏列(而不是删除它),设置列宽 = 0:
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, FieldName: "Resource Names", Width: 0);
projApp.Application.TableApply(Name: "&Entry");
这样,用户以后可以取消隐藏该列,而无需编辑 table 来插入它。
我正在 Visual Studio 上做一个 WinForm 程序,它自动创建和自动化 MS-Project 文件。
我使用了那些参考资料:
Microsoft Office 16.0 Object Library
Microsoft Office Project 16.0 Object Library
Microsoft Project Task Launch Control
在我的 MS-Project 文件中的某个位置,我想自定义 table 中列的显示。
为此,我使用了 TableEditEx 函数。我已经制作了一个新的自定义专栏,如下所示:
Microsoft.Office.Interop.MSProject.Application projApp = new Microsoft.Office.Interop.MSProject.Application();
projApp.Application.SelectTaskColumn(Column: "Add New Column");
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, NewName: "Progression", NewFieldName: "Text1", Title: "Completion", ShowInMenu: true, Width: 12);
projApp.Application.TableApply(Name: "&Entry");
现在我想隐藏列 "Resource Names" 例如。为此,我尝试了以下代码:
projApp.Application.SelectTaskColumn(Column: "Resource Names");
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, Create: false, ShowInMenu: false);
projApp.Application.TableApply(Name: "&Entry");
但它似乎除了选择列之外没有做任何事情。
我在这里研究过 :
好的,
我自己找到了解决办法。我试过做一个宏来获取 VBA 代码来隐藏一列,我得到了这个:
SelectTaskColumn Column:="Resource Names"
ColumnDelete
然后我用 C# 代码转换了它:
projApp.Application.SelectTaskColumn(Column: "Resource Names");
projApp.Application.ColumnDelete();
成功了,谢谢我!
要隐藏列(而不是删除它),设置列宽 = 0:
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, FieldName: "Resource Names", Width: 0);
projApp.Application.TableApply(Name: "&Entry");
这样,用户以后可以取消隐藏该列,而无需编辑 table 来插入它。