scrollbar_test
- 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的更多相关文章
- Unity3D学习笔记——NGUI之UIScrollBar
UIScrollBar:这个组件可以用于创建滚动条. 效果图如下: 一:使用步骤 1.这个组件和UISlider很像,也是由三部分组成. 2.首先创建一个Sprite用于组件的背景色. 3.创建第二个 ...
随机推荐
- bzoj1188 [HNOI2007]分裂游戏 博弈论 sg函数的应用
1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 973 Solved: 599[Submit][Status ...
- ACM water
1000 纯属适应题 1003 做的时候花了很久,现在看好像也不难 1004 适应题,求下平均就行 1005 要读懂题就行 1007 逆序数,discuss方法 1046 全部暴搜一遍.. ...
- git tool
1. install apt-get install git 2. 使用 ssh-keygen -C "email" -t rsa 生成一个ssh pub key,将生成的id_ ...
- MyBatis学习(二)
前言 昨天的博客简单的记录了MyBatis的起源.作用.配置以及一个简单的查询例子.写到一半的时候,觉得已经学会了MyBatis,可是全写完的时候才发现,如果多个参数查询,如何表的名字与类字段名不一样 ...
- 10天学会phpWeChat——第七天:创建一个自适应PC网站+H5移动端的模块
本教程基于phpWeChat核心框架1.1.0+版本.下载地址:http://s.phpwechat.com/app_38026ed22fc1a91d92b5d2ef93540f20 通过前面六讲的系 ...
- iScroll知识点
1.如果你有一个复杂的DOM结构,最好在onload事件之后适当的延迟,再去初始化iScroll.最好给浏览器100或者200毫秒的间隙再去初始化iScroll. 2.iScroll作用于滚动区域的外 ...
- caffe初步实践---------使用训练好的模型完成语义分割任务
caffe刚刚安装配置结束,乘热打铁! (一)环境准备 前面我有两篇文章写到caffe的搭建,第一篇cpu only ,第二篇是在服务器上搭建的,其中第二篇因为硬件环境更佳我们的步骤稍显复杂.其实,第 ...
- Ionic开发实战
转自:http://blog.csdn.net/i348018533/article/details/47258449/ 折磨的两个月!Ionic从零单排,到项目发布!遇到了很多问题但都一一解决了,此 ...
- MySQL的基本操作
1. 查看数据库 语法 #show databases; 2. 添加数据库 语法: #create database demo; 3. 删除数据库 语法: #drop database demo; 4 ...
- JVM1.6 GC详解
前言 JVM GC是JVM的内存回收算法,调整JVM GC(Garbage Collection),可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率. ...