axMapControl1.KeyIntercept = 1; private void axMapControl1_OnKeyDown(object sender, ESRI.ArcGIS.MapControl.IMapControlEvents2_OnKeyDownEvent e) { switch (e.keyCode) { case (int)System.Windows.Forms.Keys.Up: PanMap(0d, 0.5d); break; case (int)System.Windows.Forms.Keys.Down: PanMap(0d, -0.5d); break; case (int)System.Windows.Forms.Keys.Left: PanMap(-0.5d, 0d); break; case (int)System.Windows.Forms.Keys.Right: PanMap(0.5d, 0d); break; } } private void PanMap(double ratioX, double ratioY) { //Pans map by amount specified given in a fraction of the extent e.g. rationX=0.5, pan right by half a screen IEnvelope envelope = axMapControl1.Extent; double h = envelope.Width; double w = envelope.Height; envelope.Offset(h * ratioX, w * ratioY); axMapControl1.Extent = envelope; }
|