using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ESRI.ArcGIS.Geometry;
using ESRI.ArcGIS.Controls;
using System.Runtime.InteropServices;
using ESRI.ArcGIS.Display; namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} double xmin, ymin, xmax, ymax;
double Xmin, Ymin, Xmax, Ymax;
int Xvalue = ;
int Yvalue = ;
int Xlarge = ;
int Ylarge = ;
double heightFullenv, h, widthFullEnv, w;
double initScale = 0d;
int vscrollMaxium = ;
int hscrollMaxium = ; IEnvelope pEnvMap = null;
IMapControl2 pMapControl = null;
private void axMapControl1_OnExtentUpdated(object sender, ESRI.ArcGIS.Controls.IMapControlEvents2_OnExtentUpdatedEvent e)
{
pEnvMap = e.newEnvelope as IEnvelope;
pMapControl = axMapControl1.Object as IMapControl2;
if(initScale < )
initScale = pMapControl.MapScale; xmin = pEnvMap.XMin;
ymin = pEnvMap.YMin;
xmax = pEnvMap.XMax;
ymax = pEnvMap.YMax;
w = pEnvMap.Width;
h = pEnvMap.Height;
lblLeftBottom.Text = Math.Round(pEnvMap.XMin,).ToString() + "," + Math.Round(pEnvMap.YMin,).ToString();
lblRightTop.Text = Math.Round(pEnvMap.XMax, ).ToString() + "," + Math.Round(pEnvMap.YMax, ).ToString();
lblw.Text = pEnvMap.Width.ToString(); IEnvelope pEnvFull = pMapControl.ActiveView.FullExtent as IEnvelope;
Xmin = pEnvFull.XMin;
Ymin = pEnvFull.YMin;
Xmax = pEnvFull.XMax;
Ymax = pEnvFull.YMax;
widthFullEnv = pEnvFull.Width;
heightFullenv = pEnvFull.Height;
lblLeftBottomFull.Text = Math.Round(pEnvFull.XMin, ).ToString() + "," + Math.Round(pEnvFull.YMin, ).ToString();
lblRightTopFull.Text = Math.Round(pEnvFull.XMax, ).ToString() + "," + Math.Round(pEnvFull.YMax, ).ToString();
lblWf.Text = pEnvFull.Width.ToString(); if (Ymax > ymax && ymin > Ymin)
{
vscrollMaxium = (int)(heightFullenv / );
Yvalue = (int)( (Ymax - ymax) / );
Ylarge = (int)(h / );
if (Yvalue + Ylarge > vscrollMaxium)
{
Yvalue = vscrollMaxium - Ylarge;
}
}
else if (ymax > Ymax)
{
vscrollMaxium = (int)((ymax - Ymin) / );
Yvalue = ;
Ylarge = (int)(h / );
}
else if (Ymin > ymin)
{
vscrollMaxium = (int)((Ymax - ymin) / );
Ylarge = (int)(h / );
Yvalue = vscrollMaxium - Ylarge + ;
}
this.vScrollBar1.Maximum = vscrollMaxium;
this.vScrollBar1.LargeChange = Ylarge;
this.vScrollBar1.Value = Yvalue;
this.vScrollBar1.SmallChange = (int)( * (initScale / pMapControl.MapScale)); if (Xmax > xmax && xmin > Xmin)
{
hscrollMaxium = (int)(widthFullEnv / );
Xvalue = (int)((xmin - Xmin) / );
Xlarge = (int)(w / );
if (Xvalue + Xlarge > hscrollMaxium)
{
Xvalue = hscrollMaxium - Xlarge;
}
}
else if (xmax > Xmax)
{
hscrollMaxium = (int)((xmax - Xmin) / );
Xlarge = (int)(w / );
Xvalue = hscrollMaxium - Xlarge + ;
}
else if (Xmin > xmin)
{
hscrollMaxium = (int)((Xmax - xmin) / );
Xvalue = ;
Xlarge = (int)(w / );
}
this.hScrollBar1.Maximum = hscrollMaxium;
this.hScrollBar1.LargeChange = Xlarge;
this.hScrollBar1.Value = Xvalue;
this.hScrollBar1.SmallChange = (int)( * (initScale / pMapControl.MapScale)); lblYscroll.Text = "Large:" + Ylarge.ToString() + ",Value:" + Yvalue.ToString() +
",Small:" + vScrollBar1.SmallChange.ToString() + ",Max:" + vScrollBar1.Maximum.ToString();
} private void btnSetDemo_Click(object sender, EventArgs e)
{
int max = ;
int value = ;
int smallchange = ;
int largechange = ;
int.TryParse(this.txtSmallChange.Text, out smallchange);
int.TryParse(this.txtMaxinum.Text, out max);
int.TryParse(this.txtValue.Text, out value);
int.TryParse(txtLargeChange.Text, out largechange);
this.vScrollBar3.Maximum = max;
this.vScrollBar3.SmallChange = smallchange;
this.vScrollBar3.LargeChange = largechange;
this.vScrollBar3.Value = value;
} private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
this.axMapControl1.OnExtentUpdated -= this.axMapControl1_OnExtentUpdated;
double newheight = (e.OldValue - e.NewValue) * ;
pEnvMap.Offset(, newheight);
this.pMapControl.Extent = pEnvMap;
this.axMapControl1.OnExtentUpdated += this.axMapControl1_OnExtentUpdated;
} private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
this.axMapControl1.OnExtentUpdated -= this.axMapControl1_OnExtentUpdated;
double w = (e.NewValue - e.OldValue) * ;
pEnvMap.Offset(w, );
this.pMapControl.Extent = pEnvMap;
this.axMapControl1.OnExtentUpdated += this.axMapControl1_OnExtentUpdated;
} }
}

backup_code

scrollbar_test的更多相关文章

  1. Unity3D学习笔记——NGUI之UIScrollBar

    UIScrollBar:这个组件可以用于创建滚动条. 效果图如下: 一:使用步骤 1.这个组件和UISlider很像,也是由三部分组成. 2.首先创建一个Sprite用于组件的背景色. 3.创建第二个 ...

随机推荐

  1. MySQL学习总结

    MySQL的学习总结,根据数据库的四大基本操作——”增删查改“分类整理.

  2. c语言中static的用法,包括全局变量和局部变量用static修饰

    一.c程序存储空间布局 C程序一直由下列部分组成: 1)正文段--CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令: 2)初始化数据段(数据段)--在程序中所有 ...

  3. [I2C]I2C架构分析

    转自:http://blog.csdn.net/wangpengqi/article/details/17711165 1. I2C 概述 I2C是philips提出的外设总线. I2C只有两条线,一 ...

  4. Web性能测试工具JMeter

    做Web方面的黑盒测试,也就是功能测试,基本不需要什么测试工具,都是直接打开浏览器访问,点一点界面就行. 现在流行的移动互联网应用,客户端和服务端的开发是分离的,两者开发进度肯定不一样,可能存在服务端 ...

  5. dedecms 模板静态化

    require_once (dirname(__FILE__) . "/../include/common.inc.php"); require_once DEDEINC.&quo ...

  6. java如何区分是form表单请求,还是ajax请求

    requestType = request.getHeader("X-Requested-With");                 if(requestType==null) ...

  7. VM12.1.1 下载 序列号

    VF5XA-FNDDJ-085GZ-4NXZ9-N20E6UC5MR-8NE16-H81WY-R7QGV-QG2D8ZG1WH-ATY96-H80QP-X7PEX-Y30V4AA3E0-0VDE1-0 ...

  8. Javascript 实现HTML字符串的储存

    在js中使用HTML字符串时,可以不用理会字符串的单引号和双引号的转义,因为使用的注释,注释当然什么都可以写. PS:这个有点类似于 php中的 <<<语法(heredoc和nowd ...

  9. 使用delphi+intraweb进行微信开发1--微信平台接入

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. iw14.0.50来了,在新的版本中 ...

  10. XQuery的 value() 方法、 exist() 方法 和 nodes() 方法

    Xml数据类型 /*------------------------------------------------------------------------------+ #| = : = : ...