从左到右和从右到左移动标签

Posted

技术标签:

【中文标题】从左到右和从右到左移动标签【英文标题】:Move the label from left to right and right to left 【发布时间】:2022-01-18 00:37:23 【问题描述】:

我的问题很简单。 我的 Label1 应该从左到右连续移动。 (从表格的左侧开始,到表格的右侧。当它到达表格的右侧时,转到左侧,依此类推。)我有 2 个计时器(一个用于右侧,一个用于左侧) 我有以下代码,它从左侧开始并向右移动,但是当它到达表单的右侧时,它不会返回。 谁能帮帮我?

 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();
    

谢谢。

【问题讨论】:

除其他外,您永远不会更新 _objPosition 绘画事件仅用于绘画。不要在该方法中移动控件。 @LarsTech 我可以用什么代替? 更新 x 位置的刻度事件。 2 个计时器 - 一个就可以了 【参考方案1】:

我认为你把事情复杂化了。让我们只有一个计时器,一个步数的像素,我们有时会翻转为负数,一段时间后又会翻转回正数。我们可以通过重复设置它的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;
    

你可能想微调它,但基本的动作就在那里

【讨论】:

非常感谢:事实上,在我看来,这比实际上更难。谢谢。

以上是关于从左到右和从右到左移动标签的主要内容,如果未能解决你的问题,请参考以下文章

在无限循环中从左到右,从右到左平移动画箭头图像

带有触摸事件的移动图像

左右两侧滑动的安卓滑动菜单

需要从左到右再从右到左改变segue过渡

如何将 TextBox 中的书写从右到左更改为从左到右?

Qt:如何使 QGraphicsPixmapItem 在重复路线中自动移动