Visual Studio C# 中的 PictureBox 错误移动
PictureBox buggy movement in Visual Studio C#
问题
我有 PictureBoxes,我想让它们移动。我用计时器让它们移动。我可以让它们移动,但每次它们移动一个像素时,它们都会在之前的位置留下白色背景。移动时它们会使我的文本框闪烁。
这是它的样子:https://gyazo.com/cdd17b0e88a86b4dec115ceff41b44c5
画画技术不好请不要太在意
代码
public partial class Form1 : Form
{
int timeTicker;
int timeMin;
int timeSec;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
timeTicker++;
Timer(timeTicker);
//playerPics is a PictureBox array that has all the images stored
TopMovement(playerPics[0],timeTicker);
}
private void Timer(int secs)
{
timeSec = secs;
if(secs == 60)
{
timeMin += 1;
timeTicker = 0;
}
tbxTimer.Text = "Time: " + timeMin + ":" + timeSec;
}
private void TopMovment(PictureBox top, int time)
{
int y = (int)(time * 1.7);
int x = (int)(time * 0.3);
if (time < 22 && timeMin < 1)
{
top.Top -= y;
top.Left += x;
}
}
}
尝试将 DoubleBuffered = true;
放入您的构造函数中。此外,计时器绝不是移动图形的好方法。它总是会跳过一个勾号并且对你正在尝试做的事情并不是很有用。很久以前写的,看看吧。它并不完美,但比使用计时器好 lot。 http://pastebin.com/9P77eaAU
问题
我有 PictureBoxes,我想让它们移动。我用计时器让它们移动。我可以让它们移动,但每次它们移动一个像素时,它们都会在之前的位置留下白色背景。移动时它们会使我的文本框闪烁。
这是它的样子:https://gyazo.com/cdd17b0e88a86b4dec115ceff41b44c5
画画技术不好请不要太在意
代码
public partial class Form1 : Form
{
int timeTicker;
int timeMin;
int timeSec;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
timeTicker++;
Timer(timeTicker);
//playerPics is a PictureBox array that has all the images stored
TopMovement(playerPics[0],timeTicker);
}
private void Timer(int secs)
{
timeSec = secs;
if(secs == 60)
{
timeMin += 1;
timeTicker = 0;
}
tbxTimer.Text = "Time: " + timeMin + ":" + timeSec;
}
private void TopMovment(PictureBox top, int time)
{
int y = (int)(time * 1.7);
int x = (int)(time * 0.3);
if (time < 22 && timeMin < 1)
{
top.Top -= y;
top.Left += x;
}
}
}
尝试将 DoubleBuffered = true;
放入您的构造函数中。此外,计时器绝不是移动图形的好方法。它总是会跳过一个勾号并且对你正在尝试做的事情并不是很有用。很久以前写的,看看吧。它并不完美,但比使用计时器好 lot。 http://pastebin.com/9P77eaAU