请问如何控制picturebox中的图片?

xiaozi147 2010-02-25 03:12:05
我用picturebox显示一张很大的图片,初始化的picturebox只能显示图片的左上部分,我想按上下左右键来控制图片上下左右移动,让picturebox显示其他部分,请问该怎么做???
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (pictureBox1.ImageLocation != null)
{
if (keyData == Keys.Right)
{

}
else if (keyData == Keys.Left)
{

}
}
return true;
}

...全文
81 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaizi_sun 2010-02-25
  • 打赏
  • 举报
回复
http://blog.csdn.net/chengking/archive/2005/10/07/496680.aspx
这个例子看下,放大效果
h_w_king 2010-02-25
  • 打赏
  • 举报
回复
先将图片调入,再在pictureBox1_Paint里进行绘制.

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (m != null)
{
if (keyData == Keys.Right)
{
p.X = p.X - 10;
if (p.X < 0)
p.X = 0;

}
else if (keyData == Keys.Left)
{
p.X += 10;
if (p.X > (m.Width - this.pictureBox1.Width))
p.X = m.Width - this.pictureBox1.Width;

}
this.pictureBox1.Refresh();
}

return true;
}

Point p = new Point(0, 0);
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(m, new Rectangle(new Point(0, 0), this.pictureBox1.Size), new Rectangle(p, this.pictureBox1.Size), GraphicsUnit.Pixel);
}


Image m;
private void Form1_Load(object sender, EventArgs e)
{
OpenFileDialog o=new OpenFileDialog();
if (o.ShowDialog() == DialogResult.OK)

m = new Bitmap(o.FileName); //调入图片
}

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧