C# PictureBox控件 显示位置问题

问题很简单,我想把一张比控件大一点的图像放在控件上面,然后可以响应鼠标的拖动调整图像的显示位置.大家可以想像一下红警里面把鼠标移到屏幕边上的时候的样子.大概就是做成这个效... 问题很简单,我想把一张比控件大一点的图像放在控件上面,然后可以响应鼠标的拖动调整图像的显示位置.
大家可以想像一下红警里面把鼠标移到屏幕边上的时候的样子.大概就是做成这个效果.

所以,如何设置一幅图片在PictureBox里面的显示位置?如果能用坐标控制就好了.
展开
 我来答
Dedicatus545__
2009-05-04 · TA获得超过239个赞
知道小有建树答主
回答量:86
采纳率:0%
帮助的人:169万
展开全部
在 Paint事件里自己画

这个你参考一下

using System;
using System.Drawing;
using System.Windows.Forms;

public class Program
{
private static void Main()
{
Application.Run(new MainForm());
}
}

public class MainForm : Form
{
public MainForm()
{
PictureBox pic = new PictureBox();
Image img = Image.FromFile("image.png"); // 加载图像
Point pti = Point.Empty, pts = Point.Empty;
bool dow = false;

pic.BorderStyle = BorderStyle.FixedSingle;
pic.Dock = DockStyle.Fill;
pic.Parent = this;

pic.MouseDown += delegate(object o, MouseEventArgs e)
{
Rectangle rec = new Rectangle(pti, img.Size);

if (!rec.Contains(e.Location)) return;

pts.X = e.X - pti.X;
pts.Y = e.Y - pti.Y;

dow = true;
};
pic.MouseMove += delegate(object o, MouseEventArgs e)
{
Rectangle rec = new Rectangle(pti, img.Size);

if (!dow) return;

pti.X = (e.X - pts.X);
pti.Y = (e.Y - pts.Y);

pic.Refresh();
};
pic.MouseUp += delegate(object o, MouseEventArgs e)
{
dow = false;
};
pic.Paint += delegate(object o, PaintEventArgs e)
{
e.Graphics.DrawImage(img, new Rectangle(pti, img.Size));
};

ClientSize = new Size(256, 256);
}
}
dkxpsg
2009-05-07 · TA获得超过1628个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:1053万
展开全部
这个方法简单一些
http://zhidao.baidu.com/question/84625386.html
设置坐标就改变Panel的滚动条就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式