报了这个错是什么情况啊?
DatasetVector result=(DatasetVector)cboriginalDataset.SelectedItem ;//声明并初始化一个用于保存操作结果的数据集 switch (type) { case 1: OverlayAnalyst.Clip((DatasetVector)cboriginalDataset.SelectedItem, (DatasetVector)cboverlayDs.SelectedItem, result,pars ); break; } Result Result = new Result(result);//将结果数据集对象传给Result窗体 workspace1.Close(); workspace2.Close(); workspace3.Close(); Result.Show();
我是利用窗体的构造函数来传的值,rdt获取的就是Clip方法里那个用来保存裁剪结果的result数据集.
public partial class Result : Form { public Result(DatasourceConnectionInfo dci,DatasetVector rdt) { InitializeComponent(); mapControl1.Map.Workspace = workspace1; mapControl1.Map.Layers.Add(rdt,true); mapControl1.Refresh(); }
三个都关了是因为我以为传过来的那个dataset对象还被绑在上一个窗体的workspace里面,所以才会报错,就都关了。但还是没用。