使用C#Interop在MS Project中隐藏列
我在VisualStudio上做一个WinForm程序,它自动创建和自动化MS项目文件 我使用这些参考资料:使用C#Interop在MS Project中隐藏列,c#,com-interop,ms-project,office-automation,C#,Com Interop,Ms Project,Office Automation,我在VisualStudio上做一个WinForm程序,它自动创建和自动化MS项目文件 我使用这些参考资料: Microsoft Office 16.0 Object Library Microsoft Office Project 16.0 Object Library Microsoft Project Task Launch Control 在我的MS Project文件中的某个时刻,我希望自定义表中列的显示 为此,我使用TableEditEx函数。我已经制作了一个新的定制专栏,如下所示
Microsoft Office 16.0 Object Library
Microsoft Office Project 16.0 Object Library
Microsoft Project Task Launch Control
在我的MS Project文件中的某个时刻,我希望自定义表中列的显示
为此,我使用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");
现在我想隐藏列“资源名称”,例如。为此,我尝试了以下代码:
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代码:
它成功了,谢谢我自己 好的
我自己找到了解决办法。我试着用宏来让VBA代码隐藏一列,结果是:
SelectTaskColumn Column:="Resource Names"
ColumnDelete
我把它转换成C代码:
它成功了,谢谢我自己 要隐藏列(而不是删除列),请将列宽设置为0:
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, FieldName: "Resource Names", Width: 0);
projApp.Application.TableApply(Name: "&Entry");
这样,用户可以在以后取消隐藏该列,而无需编辑表格以插入该列。要隐藏该列(而不是删除该列),请将列宽设置为0:
projApp.Application.TableEditEx(Name: "&Entry", TaskTable: true, FieldName: "Resource Names", Width: 0);
projApp.Application.TableApply(Name: "&Entry");
这样,用户可以在以后取消隐藏该列,而无需编辑表以插入该列