【发布时间】:2018-10-14 22:15:06
【问题描述】:
我希望按下左键时图片框中的图像可以翻转,如下所示的代码,但是按下左键时它没有翻转。任何人都可以帮忙吗?非常感谢!
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
KeyDown += new KeyEventHandler(Form1_KeyDown);
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
int x = pictureBox1.Location.X;
int y = pictureBox1.Location.Y;
if (e.KeyCode == Keys.Right)
{
x += 10;
}
else if (e.KeyCode == Keys.Left)
{
pictureBox1.Image.RotateFlip(RotateFlipType.Rotate180FlipX);
pictureBox1.Refresh();
x -= 10;
}
else if (e.KeyCode == Keys.Up)
{
y -= 10;
}
pictureBox1.Location = new Point (x, y);
pictureBox1.Invalidate();
}
}
}
【问题讨论】:
-
已经测试了你在这里的代码,它似乎工作正常 - 你使用的是 numbad 上的箭头还是实际的箭头键?因为它们确实映射到不同的 Keys 枚举?
-
您需要像example中一样重新分配到图像字段
-
我已经测试过了,用实际的箭头键,图片框会移动,但是按下左键时图像没有翻转。
-
建议:如果您使用的是 .NET,则使用什么版本?如果它是 3.5 或更高版本,那么我强烈建议切换到
WPF或将ElementHost添加到您的Form并将XAML内容添加到ElementHost。我这么说的唯一原因是您可以轻松地旋转并使用它比在 WinForms 中做更多的事情。 -
4.7.1,项目必须使用c#完成。无论如何,感谢您的建议 =) 谢谢!
标签: c# image picturebox flip