虚拟主机行业最新资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:站长资讯>-> 网站运营-> 网站运营
.NET中Form.AutoScrollPosition的运用-.NET教程,.NET Framework
作者:网友供稿 点击:36
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,空间150元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
今天拿c#写了一个支持滚动的图片显示程序(winform程序),主要运用form的autoscroll,代码很简单,关键代码如下:
/// <summary>
/// form的load事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void form1_load(object sender, system.eventargs e)
{
   //这个很关键,只有该属性为true时,窗口才会在控件超出窗口范围时
    //自动添加滚动条,并在我们操作滚动条时,自动滚动控件
    this.autoscroll = true;
}
/// <summary>
/// 设置一个图片文件到picturebox1上
/// </summary>
/// <param name="filename">图片文件名</param>
private void setimage(string filename)
{
    bitmap bm = new bitmap(filename);
    picturebox1.backgroundimage = bm;
   
    graphicsunit bmgu = graphicsunit.pixel;
    rectanglef rectf = bm.getbounds(ref bmgu);
    //设置picturebox1的大小和位置。如果该控件超出form的范围,form会自动
    //添加滚动条
    picturebox1.setbounds(0, 0, (int)rectf.width, (int)rectf.height);
}
/// <summary>
/// picturebox1的dobuleclick事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void picturebox1_doubleclick(object sender, system.eventargs e)
{
    //打开一个文件对话框选择图片文件
    openfiledialog openfiledialog = new openfiledialog();
    openfiledialog.filter = "image files|*.bmp;*.jpg;.jpeg;*.gif";
    if(openfiledialog.showdialog() == dialogresult.ok)
    {
        //设置要显示的图片
        setimage(openfiledialog.filename);
    }
}
 
运行一下,似乎很正常,双击picturebox1,打开一个图片文件,如果图片尺寸过大,会自动出现滚动条。只是有一种情况,先打开一个大图片,然后拖动滚动条到最后,然后再打开一图片,图片显示的位置就出错了(不是显示在左上角)。奇怪了,我明明设置了picturebox1的x y为0了啊:picturebox1.setbounds(0, 0, ……)真是很费解!!
 
经过艰苦地攻读framework帮助文件,终于找出原因,现在和大家分享:原来当我们改变了窗口的滚动条的位置后,窗口客户区的坐标原点就发生了变化,和原来的坐标原点的偏移量可以用form.autoscrollposition表示。
既然问题找到了,解决就很简单,修改setimage函数的最后一句代码为:
picturebox1.setbounds(autoscrollposition.x, autoscrollposition.y, (int)rectf.width, (int)rectf.height);
就一切ok了!!

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:[1] 
相关主题
  • .net中多线程的同步资源访问_c#应用
  • .net中socket编程的简单示例_asp.net技巧
  • .net中常见问题及解决方法归类_asp.net技巧
  • .net中错误日志的写入_asp.net技巧
  • .net中大数处理的一些算法思想_asp.net技巧
  • Google

    热门文章
    ·ASP.NET的安装与运行环境-.NET教程,Asp.Net开发
    ·运用.NET+SQL Server2005构建多层网站(3)-.NET教程,数据库应用
    ·JAVA写的四则混合运算-JSP教程,Java技巧及代码
    ·获取高精度的时间差,可以用来分析页面运行时间的长短-.NET教程,Asp.Net开发
    ·基于.Net平台应用程序唯一运行实例C#代码实现-.NET教程,C#语言
    ·Alexa 世界网站排名研究(下)-网站运营,搜索引擎推广
    ·运用.NET+SQL Server2005构建多层网站(1)-.NET教程,数据库应用
    ·优化系统让Photoshop运行更流畅-网页设计,Photoshop
    ·ASP.NET 2.0运行时简要分析-.NET教程,Asp.Net开发
    ·手工打造运算符重载过程-.NET教程,C#语言

    最新文章
    ·MySQL服务器内部安全数据目录访问
    ·MySQL和SQL Server,到底选择谁?
    ·五种推广模式的优劣的比较
    ·基于.Net平台应用程序唯一运行实例C#代码实现-.NET教程,C#语言
    ·运用反射给实体赋值-.NET教程,Asp.Net开发
    ·大数运算(一)-.NET教程,评论及其它
    ·虚拟主机上asp.net运行权限不足问题及解决-.NET教程,Asp.Net开发
    ·ASP.NET底层架构探索之进入.NET运行时-.NET教程,Asp.Net开发
    ·基于.Net平台应用程序唯一运行实例实现-.NET教程,.NET Framework
    ·ASP.NET 2.0运行时简要分析-.NET教程,Asp.Net开发

    相关主题
  • .net中多线程的同步资源访问_c#应用
  • .net中socket编程的简单示例_asp.net技巧
  • .net中常见问题及解决方法归类_asp.net技巧
  • .net中错误日志的写入_asp.net技巧
  • .net中大数处理的一些算法思想_asp.net技巧



  • 友情链接
    CNNIC 西部数码
    万网 自助建站
    虚拟主机 asp空间
    域名注册 域名
    域名申请 主页空间
    论坛空间 网站空间
    国际域名 虚拟空间
    空间租用 DDOS防火墙
    成都主机托管 四川主机托管
    主机租用 服务器租用
    网站目录 一班在线
    虚拟主机 网址大全
    软件下载
    自助链接
    虚拟主机资讯 特价虚拟主机


    版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

    特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
      打印  刷新  关闭


    联系我们  |  广告服务  |  免责声明  |  友情连接
    Copyright ?2005 - 2006 All Rights Reserved
    蜀ICP备05000045号