C# 如何使用循环使子命令按钮执行

C# 如何使用循环使子命令按钮执行,c#,loops,switch-statement,C#,Loops,Switch Statement,好的,这是我昨天提问的一个高级方法 switch (status) { case 0: { label1.Visible = false; label2.Visible = true; label3.Visible = false; status = 1; break;

好的,这是我昨天提问的一个高级方法

switch (status)
    {
        case 0:
            {
                label1.Visible = false;
                label2.Visible = true;
                label3.Visible = false;
                status = 1;
                break;
            }
        case 1:
            {
                label1.Visible = false;
                label2.Visible = false;
                label3.Visible = true;
                status = 2;
                break;
            }
        case 2:
            {
                label1.Visible = true;
                label2.Visible = false;
                label3.Visible = false;
                status = 0;
                break;
            }
    }
我在命令按钮中使用了这个开关标志,并且成功了很多 但我发现了一些很酷的东西,所以我想到了一个大的先进的东西,可能是这样的

while (true)
{
    switch (status)
    {
        case 0:
            {
                label1.Visible = false;
                label2.Visible = true;
                label3.Visible = false;
                status = 1;
                break;
            }
        case 1:
            {
                label1.Visible = false;
                label2.Visible = false;
                label3.Visible = true;
                status = 2;
                break;
            }
        case 2:
            {
                label1.Visible = true;
                label2.Visible = false;
                label3.Visible = false;
                status = 0;
                break;
            }
    }
}
所以我只使用一个命令按钮,然后所有的情况下,在开关开始重复和重复。 但是这种逻辑是完全失败的,当我执行程序时,我什么都不知道。 我已经用递增循环和失败完成了,
在这种情况下,while循环是否有可能?

单击按钮1后,这段代码将无限期地显示和隐藏标签。看看这是不是你想要的

private void button1_Click(object sender, EventArgs e)
{
    button1.Enabled = false;

    var t = new System.Threading.Tasks.Task(Switcher);
    t.Start();
}

private void Switcher()
{
    int status = 0;

    while (true)
    {
        switch (status)
        {
        case 0:
            label1.Visible = false;
            label2.Visible = true;
            label3.Visible = false;
            status = 1;
            break;
        case 1:
            label1.Visible = false;
            label2.Visible = false;
            label3.Visible = true;
            status = 2;
            break;
        case 2:
            label1.Visible = true;
            label2.Visible = false;
            label3.Visible = false;
            status = 0;
            break;
        }

        System.Threading.Thread.Sleep(200);
    }
}

你到底想做什么?@nphx我想做一个重复的切换程序你打算让那些
break
语句跳出循环吗?@nphx-hm,我不明白你的意思,我的想法是循环switch语句,这样我就不用点击命令按钮来重复它了,这正是您所做的。这有什么意义呢?var t=新系统。线程。任务。任务(切换器);这不是一个有效的对象,先生,但是System.Threading.Thread.Sleep(200);是available@Geofff您使用的是比4.0旧的.NET版本吗?是的,我使用的是.NET 2.0,因此此版本仅在.NET 4.0中可用then@Geofff您可以使用
var t=newsystem.Threading.Thread(切换器)改为。“跨线程操作无效:从创建控件“Form1”的线程以外的线程访问控件“Form1”。“顺便问一下,编写代码u的目的是什么?”?我想知道。。。