从左到右和从右到左移动标签
Move the label from left to right and right to left
我的问题很简单。
我的 Label1 应该从左到右连续移动。
(从表格的左侧开始,然后转到表格的右侧。当它到达表格的右侧时,转到左侧,依此类推。)我有 2 个计时器(一个用于右侧,一个用于左侧)
我有下面的代码,它从左边开始到右边,但是当它到达窗体的右边时,它没有return。
谁能帮帮我?
enum Position
{
Left,Right
}
System.Windows.Forms.Timer timerfirst = new System.Windows.Forms.Timer();
private int _x;
private int _y;
private Position _objPosition;
public Form1()
{
InitializeComponent();
if (label1.Location == new Point(0,180))
{
_objPosition = Position.Right;
}
if (label1.Location == new Point(690,0))
{
_objPosition = Position.Left;
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Label1.SetBounds(_x, _y, 0, 180);
}
private void tmrMoving_Tick(object sender, EventArgs e)
{
tmrMoving.Start();
if (_objPosition == Position.Right && _x < 710)
{
_x +=10;
}
if(_x == 710)
{
tmrMoving.Stop();
}
Invalidate();
}
private void tmrMoving2_Tick(object sender, EventArgs e)
{
tmrMoving2.Start();
if (_objPosition == Position.Right && _x > 690)
{
_x -= 10;
}
if(_x == 1)
{
tmrMoving2.Stop();
}
Invalidate();
}
谢谢。
我认为你把事情复杂化了。让我们只有一个计时器,我们有时翻转负值的像素步数,一段时间后翻转回正值。我们可以通过重复设置其 Left:
来移动标签
public partial class Form1 : Form
{
private int _step = 10;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (label1.Right > this.Width) _step = -10;
if (label1.Left < 0) _step = 10;
label1.Left += _step;
}
}
您可能想要对其进行微调,但基本动作已经有了
我的问题很简单。 我的 Label1 应该从左到右连续移动。 (从表格的左侧开始,然后转到表格的右侧。当它到达表格的右侧时,转到左侧,依此类推。)我有 2 个计时器(一个用于右侧,一个用于左侧) 我有下面的代码,它从左边开始到右边,但是当它到达窗体的右边时,它没有return。 谁能帮帮我?
enum Position
{
Left,Right
}
System.Windows.Forms.Timer timerfirst = new System.Windows.Forms.Timer();
private int _x;
private int _y;
private Position _objPosition;
public Form1()
{
InitializeComponent();
if (label1.Location == new Point(0,180))
{
_objPosition = Position.Right;
}
if (label1.Location == new Point(690,0))
{
_objPosition = Position.Left;
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Label1.SetBounds(_x, _y, 0, 180);
}
private void tmrMoving_Tick(object sender, EventArgs e)
{
tmrMoving.Start();
if (_objPosition == Position.Right && _x < 710)
{
_x +=10;
}
if(_x == 710)
{
tmrMoving.Stop();
}
Invalidate();
}
private void tmrMoving2_Tick(object sender, EventArgs e)
{
tmrMoving2.Start();
if (_objPosition == Position.Right && _x > 690)
{
_x -= 10;
}
if(_x == 1)
{
tmrMoving2.Stop();
}
Invalidate();
}
谢谢。
我认为你把事情复杂化了。让我们只有一个计时器,我们有时翻转负值的像素步数,一段时间后翻转回正值。我们可以通过重复设置其 Left:
来移动标签public partial class Form1 : Form
{
private int _step = 10;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (label1.Right > this.Width) _step = -10;
if (label1.Left < 0) _step = 10;
label1.Left += _step;
}
}
您可能想要对其进行微调,但基本动作已经有了