C#两条信息,如何循环在一个label上显示

例如:

string message1="报警1";

string message2="报警2"

label的text显示报警1和报警2,报警1和报警2每次只要出现1个。循环显示。

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7453483
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C# label控件竖直显示 label控件垂直显示
  • 以下回答由chatgpt基于相关博客总结生成:

    我可以给出以下解决方案:

    1.在ViewController中定义两个字符串变量,如下:

    string message1 = "这是报警1的信息";
    string message2 = "这是报警2的信息";
    

    2.设置Timer循环切换字符串信息,如下:

    Timer timer = new Timer();
    int index = 0; //用于标记当前显示的是哪一条信息
    timer.Interval = 1000; //设定每隔1s切换一次信息
    timer.Tick += new EventHandler(delegate
    {
         if (index == 0)
         {
              label1.Text = message1;
              index = 1;
         }
         else
         {
              label1.Text = message2;
              index = 0;
         }
    });
    timer.Start();
    

    3.需要注意的是,在切换信息时,由于涉及到UI更新,需要使用Invoke方法,如下:

    label1.Invoke(new Action(delegate { label1.Text = message1; }));
    

    总体代码如下:

    public partial class Form1 : Form
    {
        private string message1 = "这是报警1的信息";
        private string message2 = "这是报警2的信息";
        private Timer timer = new Timer();
        private int index = 0;
    
        public Form1()
        {
            InitializeComponent();
            timer.Interval = 1000;
            timer.Tick += new EventHandler(TimerEventProcessor);
            timer.Start();
    
        }
    
        private void TimerEventProcessor(Object myObject, EventArgs myEventArgs)
        {
            if (index == 0)
            {
                label1.Invoke(new Action(delegate { label1.Text = message1; }));
                index = 1;
            }
            else
            {
                label1.Invoke(new Action(delegate { label1.Text = message2; }));
                index = 0;
            }
        }
    }
    

设置定时器,时间自己定
函数体内判断label的text,为警报1就该为警报2,反之亦然