//Create the messages object and a bool to pass to the InvokeModal method.
IGPMessages msgs;
msgs = new GPMessagesClass();
bool pok = true;
IArray pArray = pToolHelper.Tool.ParameterInfo;
IGPParameter pGPParameter = pArray.get_Element(0) as IGPParameter;
IGPDataType pGPDataType= pGPParameter.DataType;
IGPParameterEdit pGPParameterEdit = pGPParameter as IGPParameterEdit;
pGPParameterEdit.Value = pGPDataType.CreateValue(@E:\ZhuXinying\testData\Raster.gdb\testMosaic); //这里只设置了一个参数,设置多个参数也一样
//Invoke the tool.
pToolHelper.InvokeModal(0, pArray, out pok, out msgs);
//获取执行结果,可以将该段代码放在InvokeModal之前执行。
Geoprocessor GP = new Geoprocessor();
GP.MessagesCreated += new EventHandler<MessagesCreatedEventArgs>(GP_MessagesCreated);
1 个回复
朱新颖
赞同来自:
1,设置IArray,注意IArray不能直接new,而需要通过IGPTool.ParameterInfo 获取,设置好后再将其传人InvokeModal();方法中,具体可以参考下面示例代码:
2,原则上通过InvokeModal返回的IGPMessages参数应该是可以获取结果信息的,但经测试,该参数的返回值为null,那么可以通过Geoprocessor.MessagesCreated事件来获取执行信息。具体可以参考下面示例代码。
要回复问题请先登录或注册