pictureBox控件没有滚动条
PictureBox的AutoScroll设置为true
PictureBox的AutoScroll设置为true
解决方案 »
- 如何打开新窗体,不是默认那种~
- 服务器应用程序不可用 怎么回事啊
- 为什么SqlConnection不open也能把结果读出来
- 学习asp.NET看什么书好?
- 怎样重新生成MouseDown、MouseMove、MouseUp事件
- 哪位高手知道调试和运行的时候得到的值不一样是怎么回事???
- 照书上原样抄下,仍出问题:名称"i"在类或命名空间"ConsoleApplication1.Class1"中不存在.
- Datagrid导入excel数据出现乱码的问题
- 怎样对整个解决方案 的XX.cs文件进行组织uing 移除和排序?
- 一个简单的计算问题,哥哥们帮我看看错在哪哦~~~
- 可以获取其他程序的datatable吗。
- VS2012WEB项目如何附加到进程进行本机调试
PictureBox的AutoScroll设置为truePictureBox没有AutoScroll这个属性
鉴于楼主钟情于版主@caozhy,我就不多说了
建议先对你要显示的大图切片,弄成一系列的瓦片。
切片程序可以自己写。是创建位图对象,绘图和保存等操作的循环。
这种情况下也不建议用滚动条,而是设计成用户鼠标拖动的操作。
可以在MouseDown记录个初始坐标,MouseMove判断是否鼠标已经按下,按下的话就是拖动。
记录当前坐标与初始坐标的差异,从逻辑上计算应该漫游的区域,刷新图片框,对于涉及的切片图形,在图片框的Paint事件中绘图。
这样,你就可以在一个图片框中快速地漫游一个超大的图片了。
这些个步骤涉及比较复杂的平面几何的计算,但并不难。
你可以把你的图片都切成500*500左右的。
PictureBox的AutoScroll设置为truePictureBox没有AutoScroll这个属性
用个panel 300*300 设置AutoScroll有滚动条,里面放PictureBox
设置PictureBox的高宽跟图片的高宽一样,Bitmap有width和height属性的
当然如果这个位图非常的大(比如100M以上的大图),切片程序在读取这个位图的时候可能就会很慢甚至内存溢出了。
所以,如果你想快速地直接加载这个位图(不用事先切片),则比较困难。
你需要熟悉Bmp/JPG/Png/tif的数据结构,快速读取调色板和区块的数据,动态切片。等你有这方面的需求了,可以再深入研究(我本人并未达到这个水平)。