Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c更改2016 MS项目中的CellColor#_C#_Add In_Ms Project - Fatal编程技术网

C# 使用c更改2016 MS项目中的CellColor#

C# 使用c更改2016 MS项目中的CellColor#,c#,add-in,ms-project,C#,Add In,Ms Project,我目前正在制作一个MS Project 2016插件,当条件为真时,我需要为特定任务(任务行)着色。 我正在使用c#NET4 我提出了一个方法: public void colorYellow(MSProject.Task task){ Globals.ThisAddIn.Application.SelectRow(task.ID); Globals.ThisAddIn.Application.ActiveCell.CellColor = PjColor.pjYe

我目前正在制作一个MS Project 2016插件,当条件为真时,我需要为特定任务(任务行)着色。 我正在使用c#NET4

我提出了一个方法:

public void colorYellow(MSProject.Task task){
        Globals.ThisAddIn.Application.SelectRow(task.ID);
        Globals.ThisAddIn.Application.ActiveCell.CellColor = PjColor.pjYellow;      
    }
我遇到异常:意外的方法错误

有没有办法用某种方式给整个任务行着色?
谢谢你的回答

意外的方法错误源于您实际上选择了一个空行,因为默认情况下
SelectRow
方法是相对的。除非第二个可选参数
RowRelative
作为False传入,否则选择将向前移动
task.ID
行。因此,请尝试:

Globals.ThisAddIn.Application.SelectRow(task.ID, false);

如果单元格颜色仍然没有更改,请查看该方法以获得更改单元格颜色的替代方法。尽管MSDN引用指示Color参数改变了字体颜色,但一些SO帖子(以及我自己的测试)显示它实际上改变了背景颜色。(注:这远非MS Project的MSDN参考页不准确的唯一情况。)


(请注意代码示例:我是一名vb.net程序员……不确定将False作为第二个参数传递是否正确。)

第1行是函数原型,如果使用调试器,会在哪一行发生错误?应该可以做你想做的事:坚持住。