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. ffmpeg 和 SDL 的结合使用

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.采用LGPL或GPL许可证.它提供了录制.转换以及流化音视 频的完整解决方案.它包含了非常先进的音频/视频编解码库 ...

  2. Definition of success-成功的定义

    "My definition of success is doing what you love. I fell many people do things because they fee ...

  3. Arcgis Server 10.2默认服务端口号修改方法

    本人安装Arcgis Server 10.2之后发布了一个地图服务,该服务默认使用的端口号是6080,本人使用的是教育网,使用教育网均能正常使用该服务,但是使用电信或者移动网络均不能正常访问该网站. ...

  4. OPENVPN

    安装 方法1--源码安装yum -y install  pam pam-devel gcc gcc-c++ lzo lzo-devel openssl openssl-devel wget autom ...

  5. oracle基础教程(8)oracle修改字符集

    oracle基础教程(8)oracle修改字符集 1.用dba连接数据库 -->sqlplus / as sysdba 2.查看字符集 -->SELECT parameter, value ...

  6. Android数据库的运用

    很简单的应用,所以我直接简单明了.     android中数据库的运用:    1.定义类继承SQLiteOpenHelper   ps:   public class DBHelper exten ...

  7. es6 ... 表达

    ... 包含0个或n个属性, { ...state.counters [id]: state.counters[id] - 1 } 只改变其中的id相对应的属性,其他保持不变

  8. android 学习第一天 了解事件机制,页面跳转等常用操作

    点击时间2种 第一种,通过初始化页面 写入点击事件 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI ...

  9. OAF_开发系列06_实现OAF属性集的介绍和开发Attribute Set(案例)

    20150705 Created By BaoXinjian

  10. weave 建立跨节点docker网络

    weave的工作原理上与利用openvswitch建立vxlan基本一样,都是通过用三层的协议封装二层的报文来进行扩展,weave使用的是udp.weave封装了docker,在操作上为我们隐藏了很多 ...