文库网
ImageVerifierCode 换一换
首页 文库网 > 资源分类 > PDF文档下载
分享到微信 分享到微博 分享到QQ空间

第7章.数据库与ADO.NET基础(ASP.NET_3.5开发大全_共29章).pdf

  • 资源ID:973910       资源大小:1.21MB        全文页数:33页
  • 资源格式: PDF       下载:注册后免费下载
微信登录下载
快捷下载 游客一键下载
账号登录下载
三方登录下载: QQ登录 微博登录
二维码
扫码关注公众号登录
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
验证码:   换一换

加入VIP,免费下载
 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

第7章.数据库与ADO.NET基础(ASP.NET_3.5开发大全_共29章).pdf

1、Twilight Software Development Studio 2011 1 如何 :使用 PicturBox 实现 类似淘宝 网站 图片的局部放大功能 选自 : http:/ 概要: 本文将讲述如何使用 PictureBox 控件实现图片的局部放大浏览功能,效果类似淘宝网站的图片 局部放大 浏览,通过鼠标悬浮查看局部大图 ,同时扩展了鼠标滚轮放大缩小功能 。本文将详细讲述实现该功能的主要思路,例子虽是在 Winform 的环境下实现 ( 当时开发的系统用的是 winform) ,但是代码 实现思路 在其他环境(如 WPF)应该是通用的。 关键词: 图片 局部放大 、 Picture

2、Box、图片细节展示 解决方案: 下面要实现的功能就是类似淘宝网站的图片局部放大功能,既然是山寨淘宝的功能,那么我们首先来看一下淘宝网站图片放大的效果图 : 当然这个图片是在淘宝 首页 上随便选的 一张 (呵呵,不含任何宣传的成分) 。不管这个功能淘宝官网是如何实现的,但是毋庸置疑,该功能非常实用(至少我个人还是感觉还是不错的),即用户友好度很高。 如果能把该功能做到我们自己的系统或网站中,那岂不是挺好?主动学人之长,到哪都好用。 可惜,我百度, google 了一下,竟然没人 肯 透露具体怎么做的, 偶尔有人问到,但是回答似乎不尽人意, 笔者想想也对,虽然很 大一部分 人知道怎么做或是已经做

3、成功过了,但是没能把思想分享出来。 那么就有我来抛砖引玉吧,期待更多的人参与讨论和指导。 言归正传,我们按老规矩,还是先看看我们自己实现的效果图吧,由于只是为了实现功能,布局什么的都没考虑,所以美观方面就不能和上面的图片效果进行比较了,大家暂时将Twilight Software Development Studio 2011 2 就一下。 功能需求: 该功能的需求就是当鼠标悬浮在图片上,将该图片的固定大小(以鼠标点为中心的一个矩形 标识 区域 ), 右边 以大图的方式显示出来, 同时鼠标移动时,矩形区域随鼠标而动,右边的浏览大图位置相应改变 , 便于用户查看图片细节。 矩形标识区域和浏览大图

4、都是是在鼠标悬浮时出现,鼠标离开后消失,而且矩形标识区域边框只能在图片中,不能离开图片。 实现思路: 第一步: 布局 Twilight Software Development Studio 2011 3 按照上面的布局方式,在 Form 中放入三个 PictureBox 控件, ID 分别为: picBox、picBox_Show、 picBoxOriginal。该功能的实际应用上用到的只要两个就行,这里多加一个是为了对比用。 picBox:展示图,用于固定图片的大小,这里设置为 150 150px picBox_Show:图片局部放大显示的区域 ,默认为 400 300,大小可根据鼠标滚轮

5、进行缩放。 picBoxOriginal:是实际图片的尺寸,在这里是为了对比效果。找的一张 200 200px 的原图。 将 picBox_Show 的 BorderStyle 的属性设置为 FixedSingle,即有边框, Visible 的属性设置为 false,即开始运行是不显示 picBox_Show。 将 picBox 的 SizeMode 属性设置为 Zoom。【重要】 设置为 等比例缩放,避 免图片显示 变形。 为 picBox 和 picBoxOriginal 选择一张图片( Image 属性),注:两个是同一张图片 第二步:鼠标事件 由于 picBoxOrginal 只是为

6、了对比效果,仅仅是显示而已,我们不需要对其操作 。 对 picBox 注册三 个事件:鼠标移动 MouseMoveve、鼠标离开 MouseLeave、 Paint 事件。只属性的事件中双击即可自动在 .cs 文件中生成事件 (当然你喜欢的话,后加代码注册也可以,笔者比较懒,喜欢双击的) 。 注:你们自动生成的都应该是 picBox_Paint、 picBox_MouseMove、 picBox_MouseLeave 事件 ,因为一开始自动生成用的是默认的 ID( pictureBox1),后来为了正规点就换了个 ID, 这里就没改了, 当然这不影响我们的功能。 private void pi

7、ctureBox1_Paint(object sender, PaintEventArgs e) /定位逻辑, 详细 后面实现 Twilight Software Development Studio 2011 4 Paint 事件中处理逻辑:当鼠标移动在图片的某个位置时,我们需要绘个长方形区域,同时显示局部放大图片 ( picBox_Show) 。 当执行 picBox.Refresh()方法时将触发该事件。 private void pictureBox1_MouseMove(object sender, MouseEventArgs e) picBox.Focus(); /否则滚轮事件无

8、效 isMove = true; movedPoint_X = e.X; movedPoint_Y = e.Y; picBox.Refresh(); 在鼠标移动事件中,我们需要记录当前鼠标点的位置 ,有全局变量 movedPoint_X, movedPoint_Y存储。 /鼠标移动后点的坐标 int movedPoint_X, movedPoint_Y; 同时我们需要设置一个鼠标移动状态 isMove ,作为全局变量 bool isMove = false;,标识是否需要重新绘图。 private void pictureBox1_MouseLeave(object sender, Event

9、Args e) picBox_Show.Visible = false; picBox.Refresh(); picBox_Show.Width = 400; picBox_Show.Height = 300; 鼠标移开后,局部显示图片 (picBox_Show)隐藏, picBox 绘制的长方形也要去掉,最简单的就是调用Refresh()方法了。 void picBox_Show_MouseWheel(object sender, MouseEventArgs e) double scale = 1; if (picBox_Show.Height 0) scale = (double)pic

10、Box_Show.Width / (double)picBox_Show.Height; picBox_Show.Width += (int)(e.Delta * scale); picBox_Show.Height += e.Delta; 鼠标滑轮事件,当鼠标滑动时, picBox_Show 的大小可以改变。这个事件需要代码注册: picBox.MouseWheel += new MouseEventHandler(picBox_Show_MouseWheel);写在构造函数中。 当然 取名为: picBox_MouseWheel似乎更合理,呵呵 效果如下所示 , picBox_Show 随

11、鼠标滚轮等比例放大 : Twilight Software Development Studio 2011 5 第三步:区域定位 这一步我们就是写 Paint 方法了, 也就 是 这个功能的核心。 需要做的功能就是画 带网格的 矩形,和显示矩形 选择区域 对于的大图。 画带网格的矩形 我们 选择 先画矩形 ( DrawRectangle 方法 ) ,再填充 网格的方式解决。为什么不直接 使用更简单的 阴影画笔画网格( FillRectangle 方法)呢 ?等一下我会讲到。 画矩形的原理如上图所示, A 点时刻记录鼠标点的位置,坐标为( movedPoint_X,movedPoint_Y) ,

12、在 MoveMove 事件中改变值。 movedPoint_X = e.X; movedPoint_Y = e.Y; Twilight Software Development Studio 2011 6 知道鼠标点位置我们 就开始画长方形了 ,直接使用 DrawRectangle 方法, 改方法需要两个参数: 画笔和长方形。 画 笔全局定义为: Pen pen = new Pen(Color.FromArgb(91, 98, 114); /画笔颜色 长方形 需要知道 左上角的坐标 B 点( _x,_y) ,计算如下: /*画长方形 */ int _x = movedPoint_X - rec

13、t_W/2; int _y = movedPoint_Y - rect_H/2; 需要注意的是 ,就是 边界问题,如下图所示: 边界问题解决如下: _x = _x = picBox.Width-rect_W ? picBox.Width-rect_W-3 : _x; /减 3px的目的就是为了让长方形的边框不会刚好被 picBox的边框挡住了 _y = _y = picBox.Height-rect_H? picBox.Height-rect_H-3: _y; Rectangle rect = new Rectangle(_x,_y, rect_W, rect_H); g.DrawRectan

14、gle(pen, rect);/其中: Graphics g = e.Graphics; 长方形好 了,那么我们就开始填充网格了,网格填充其实就是在矩形区域中画线 平均分割成小方格 。 预先定义一下网格的形式: /网格边长: 5px 一格 const int gridSize = 2; /网格的行、列数 int rowGridCount = rect_H / gridSize; int columnGridCount = rect_W / gridSize; 那么画网格直接循环即可 ,横竖画线 ,如下代码: /*填充网格 */ int x1, x2, y1, y2; x1 = x2 = _x;

15、 y1 = y2 = _y; Twilight Software Development Studio 2011 7 x2 += rect_W; for (int i = 1; i 0) scale = (double)picBox_Show.Width / (double)picBox_Show.Height; picBox_Show.Width += (int)(e.Delta * scale); picBox_Show.Height += e.Delta; Twilight Software Development Studio 2011 9 bool isMove = false; /

16、鼠标移动后点的坐标 int movedPoint_X, movedPoint_Y; /画笔颜色 Pen pen = new Pen(Color.FromArgb(91, 98, 114); HatchBrush brush = new HatchBrush(HatchStyle.Cross, Color.FromArgb(91, 98, 114),Color.Empty); /使用阴影画笔画网格 /选取区域的大小 const int rect_W = 80; const int rect_H = 60; /网格边长: 5px 一格 const int gridSize = 2; /网格的行、列

17、数 int rowGridCount = rect_H / gridSize; int columnGridCount = rect_W / gridSize; private void pictureBox1_Paint(object sender, PaintEventArgs e) if (isMove = true) Graphics g = e.Graphics; /*画长方形 */ int _x = movedPoint_X - rect_W/2; int _y = movedPoint_Y - rect_H/2; _x = _x = picBox.Width-rect_W ? p

18、icBox.Width-rect_W-3 : _x; /减 3px的目的就是为了让长方形的边框不会刚好被 picBox的边框挡住了 _y = _y = picBox.Height-rect_H? picBox.Height-rect_H-3: _y; Rectangle rect = new Rectangle(_x,_y, rect_W, rect_H); g.DrawRectangle(pen, rect); / g.FillRectangle(brush, rect); /*填充网格 */ int x1, x2, y1, y2; x1 = x2 = _x; y1 = y2 = _y; x

19、2 += rect_W; for (int i = 1; i rowGridCount; i+) Twilight Software Development Studio 2011 10 y1 += gridSize; y2 += gridSize; g.DrawLine(pen, x1, y1, x2, y2); x1 = x2 = _x; y1 = y2 = _y; y2 += rect_H; for (int j = 1; j columnGridCount; j+) x1 += gridSize; x2 += gridSize; g.DrawLine(pen, x1, y1, x2,

20、y2); /*裁剪图片 */ if (picBox_Show.Image != null) picBox_Show.Image.Dispose(); Bitmap bmp = (Bitmap)picBox.Image; /缩放比例 double rate_W = Convert.ToDouble(bmp.Width) / picBox.Width; double rate_H = Convert.ToDouble(bmp.Height) / picBox.Height; Bitmap bmp2 = bmp.Clone(new Rectangle(Convert.ToInt32(rate_W*_

21、x), Convert.ToInt32(rate_H*_y), Convert.ToInt32(rate_W*rect_W), Convert.ToInt32(rate_H*rect_H), picBox.Image.PixelFormat); picBox_Show.Image = bmp2; picBox_Show.SizeMode = PictureBoxSizeMode.Zoom; picBox_Show.Visible = true; isMove = false; private void pictureBox1_MouseMove(object sender, MouseEven

22、tArgs e) picBox.Focus(); /否则滚轮事件无效 isMove = true; movedPoint_X = e.X; 代表人 年 月 日 栫栫)+13.24cos(60t+71) Vi = cos(20t-60)+cos(40t-45) A求平均功率P。解:基波合并为 50cos(20t) 则:P= W28 图题8-9所示电路中, V,n为奇数。试求稳态电流i。 图 题8-8 图 题8-9解:直流分量:I0=5/4=1.25 A第n次谐波作用时:02 rad/s, usn= VZn4+j4n, 因此 其中n为奇数29 求图题8-10所示周期波形的傅里叶级数复指数形式的系数

23、Cn。解:T=2, 0= 30 求图题8-11所示周期波形的傅里叶级数的复数形式,并画出幅度|Cn|和相位AngCn的频谱。 图 题8-10 图 题8-11解:幅度:|Cn|=相位:arg Cn-n0(t0+/2);.$ eq m 王牌2 1 C#控件查询手册 龙马工作室搜集整理制作 $V Y2 索引 数据显示控件 DataGridView 控件- 5 数据绑定和定位控件 BindingSource 组件- 6 BindingNavigator 控件- 7 文本编辑控件 TextBox 控件- 9 RichTextBox 控件- 9 MaskedTextBox 控件- 11 信息显示控件 Label 控件- 13 LinkLabel 控件- 13 StatusStrip控件- 14 ProgressBar 控件- 15 网页显示控件 WebBrowser 控件- 17 从列表中选择控件 $ eq m 王牌2 3 CheckedListBox 控件-19 ComboBox 控件- 20 DomainUpDown 控件-21 ListBox 控件-


注意事项

本文(第7章.数据库与ADO.NET基础(ASP.NET_3.5开发大全_共29章).pdf)为本站会员(认真的雪)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(点击联系客服),我们立即给予删除!




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

文库网用户QQ群:731843829  微博官方号:文库网官方   知乎号:文库网

Copyright© 2025 文库网 wenkunet.com 网站版权所有世界地图

经营许可证编号:粤ICP备2021046453号   营业执照商标

1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png