private void btnExecute_Click(object sender, EventArgs e) { string rstNm = txtOutNm.Text; string mtypStr = cmbMergeType.Text; if (rstNm == null || rstNm == "") { MessageBox.Show("You must specify a output name", "No Output", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (lsbRaster.Items.Count < 1) { MessageBox.Show("You must select at least on Raster", "No Rasters", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } IRaster[] rsArr = new IRaster[lsbRaster.Items.Count]; for (int i = 0; i < lsbRaster.Items.Count; i++) { rsArr[i] = rstDic[lsbRaster.Items[i].ToString()]; } if (mtypStr == null || mtypStr == "") { MessageBox.Show("You must specify a merge type", "No merge type", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } rasterUtil.mergeType mType = (rasterUtil.mergeType)Enum.Parse(typeof(rasterUtil.mergeType), mtypStr); this.Visible = false; esriUtil.Forms.RunningProcess.frmRunningProcessDialog rp = new RunningProcess.frmRunningProcessDialog(false); DateTime dt = DateTime.Now; rp.addMessage("Merging Rasters. This may take a while..."); rp.stepPGBar(10); rp.TopMost = true; rp.Show(); try { outraster = rsUtil.createRaster(rsUtil.calcMosaicFunction(rsArr, mType));//rsUtil.mergeRasterFunction(rsArr, mType, rstNm);// if (mp != null && addToMap) { rp.Refresh(); IRasterLayer rstLyr = new RasterLayerClass(); rstLyr.CreateFromRaster(outraster); rstLyr.Visible = false; rstLyr.Name = rstNm; mp.AddLayer((ILayer)rstLyr); } outrastername = rstNm; this.DialogResult = DialogResult.OK; } catch (Exception ex) { rp.addMessage(ex.ToString()); } finally { DateTime dt2 = DateTime.Now; TimeSpan ts = dt2.Subtract(dt); string t = " in " + ts.Days.ToString() + " days " + ts.Hours.ToString() + " hours " + ts.Minutes.ToString() + " minutes and " + ts.Seconds.ToString() + " seconds ."; rp.stepPGBar(100); rp.addMessage("Finished Mosaic Raster" + t); rp.enableClose(); this.Close(); } }