逐行从列表框中读取

本文关键字:读取 列表 逐行 | 更新日期: 2023-09-27 18:14:06

我正在创建一个程序,用户按下移动10和移动1等按钮来移动机器人,当用户按下该按钮时,它会在列表框中添加一个文本,如"MoveRobot1",因此当用户按下按钮并按下播放按钮时,程序应该一行接一行地按列表,以300ms的间隔移动机器人,但我不明白如何在按Play时逐行读取,而不是一次全部读取。

private void BtnPlay_Click(object sender, EventArgs e)
    {
        this.WorkProgress += new WorkProgressHandler(DoWork);
        _counter = 0;
        this.robot.Reset();
        this.MoveRobot(0);
        string query1 = "MoveRobot(1)";
        string query2 = "MoveRobot(10)";
        for (int i = 0; i < MoveBox.Items.Count; i++)
        {
            if (MoveBox.Items[i].ToString() == query1)
            {
                this.MoveRobot(1);
                DoWork();
            }
            if (MoveBox.Items[i].ToString() == query2)
            {
                this.MoveRobot(10);
                DoWork();
            }
        }
    }
 private void DoWork()
    {
        _counter++; // increment the counter
    }

逐行从列表框中读取

使用线程。每次迭代结束时休眠:

for (int i = 0; i < MoveBox.Items.Count; i++)
{
    if (MoveBox.Items[i].ToString() == query1)
    {
        this.MoveRobot(1);
        DoWork();
    }
    if (MoveBox.Items[i].ToString() == query2)
    {
        this.MoveRobot(10);
        DoWork();
    }
    Thread.Sleep(300);
}