2016-06-21 2 views
0

Я пытаюсь сделать эффект «мигания» в моем проекте C#, тем самым я хочу, чтобы я хотел, чтобы метка переключала текст на каждый тик. . И я пришел к выводу, что самым простым способом сделать это будет использование события таймера для изменения текста метки каждый раз после нажатия кнопки запуска. Это WinForm ПрименениеКак изменить значение метки для каждого события тика C# .NET

Но я не знаю, как сделать значение переключателя этикетки после каждого тика

Я думаю, что я делаю это сложнее, чем это должно быть ..

Что мой код делает сейчас заключается в том, что он пытается изменить 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; 
} 

Извините за неправильные соглашения об именах!

+0

Является ли это Windows Forms, какой таймер вы используете - можете ли вы показать код, в котором вы установили таймер вверх. – markmnl

+0

@Nilsson: Вы хотите создать ярлык дьянально? –

+0

Объект может быть создан программно или в xml. Также я думаю, что соглашение о присвоении имен C# состоит в том, чтобы заглавные буквы всех имен переменных для методов и переменных или типов. Подобно 'NewFunction (int varThatGoesInFunction). Об этом есть статья msdn. Также не уверен, о чем говорит разведчик, является ли html запущенным в браузере на стороне клиента? В противном случае, если типичное приложение windows C#, он совершенно не прав. –

ответ

1

Я не уверен, я правильно вас понимаю. Если ваше требование состоит в том, чтобы переключать текст на этикетке в каждом тике. Если это так, вы должны сохранить одну глобальную переменную, которая увеличит ее ценность в каждом тике. Следующий код поможет вам

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 

} 
+0

Я пробовал это, и мне показалось, что он изменил его на firstName, не переключаясь на другой после правильного количества времени. –

+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!

0
myLabel1.Text = "firstText"; 

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

Просто проверьте, содержит ли метки первый текст, и если это правда, установите метку во второй текст. Если метка больше не содержит firstText второго Tick, она возвращает ярлык firstText.

Смежные вопросы