如何在每个tick事件C#.NET中更改标签的值

时间:2016-06-21 05:58:12

标签: c# .net winforms variables timer

我正试图让#34;眨眼"在我的C#项目中的效果类型,我的意思是我想要一个标签来切换每个刻度的文本..而且我已经想到最简单的方法是使用计时器事件来改变按下开始按钮后,每个刻度标记文本。 这是一个WinForm应用程序

但我不知道如何在每次打勾后制作标签开关值

我认为我正在努力实现这一目标......

我的代码现在做的是尝试将myLabel1更改为firstBlinkName; AND secondBlinkName;同时..我想介于两者之间,我真的不知道该怎么做。

private void nameBlinkInterval_Tick(object sender, EventArgs e)
{
    var firstBlinkName = nameBlinkFirstName.Text;
    var secondBlinkName = nameBlinkSecond.Text;
    myLabel1.text = firstBlinkName;
    myLabel1.text = secondBlinkName;
}

对不正确的命名约定抱歉!

3 个答案:

答案 0 :(得分:2)

这将测试,每次更改并刷新标签:

private void nameBlinkInterval_Tick(object sender, EventArgs e)
{
   var firstBlinkName = nameBlinkFirstNameTextBox.Text;
   var secondBlinkName = nameBlinkSecondTextBox.Text;

   labelThatWillBlink.Text =  labelThatWillBlink.Text  == firstBlinkName ?
                              secondBlinkName  : firstBlinkName ;
   labelThatWillBlink.Refresh();
}

请注意使用ternary operator

答案 1 :(得分:1)

我不确定,我是否正确找到您,如果您的要求是在每个Tick中的标签上切换一些文字。如果是这样,你应该保留一个全局变量来增加每个Tick中的值。以下代码将帮助您

int tikCount=0; // This will be a global variable
string firstBlinkName = "some string Here";
string secondBlinkName = "Some other string";
private void nameBlinkInterval_Tick(object sender, EventArgs e)
{
    labelThatWillBlink = tikCount++ %2 ==0? firstBlinkName:secondBlinkName;
   // then do something here that will switch the labelThatWillBlink's value to secondBlinkName

}

答案 2 :(得分:0)

myLabel1.Text = "firstText";

private void nameBlinkInterval_Tick(object sender, EventArgs e)
{
    if(myLabel1.Text == "firstText")
    {
        myLabel1.Text = "secondText";
    }
    else
    {
        myLabel1.Text = "firstText";
    }
}

只需检查标签是否包含firstText,如果是,则将标签设置为secondText。如果标签不再包含firstText第二个Tick,它会将标签放回firstText。