Создайте цикл for, который работает от 0 до 11 (15 - длина «ping»).С new String(' ', i)
вы можете создать строку длиной i
.Затем установите текст вашей метки в эту строку пробела, соединенную со словом «ping».
Теперь вы можете сделать еще один цикл, начиная с 11 до 0, делая то же самое, но со словом «pong».
Если вы заключите оба цикла в бесконечный цикл (while (true) { ... }
), это будет выполняться бесконечно.
Возможно, вы захотите добавлять паузу каждый раз после установки текста метки с помощью Thread.Sleep(200)
,Время указывается в миллисекундах.
РЕДАКТИРОВАТЬ (так как это не домашняя работа):
Перейдите на вкладку событий в окне свойств и добавьте обработчик событий Shown
.
private void frmMarquee_Shown(object sender, EventArgs e)
{
while (true) {
for (int i = 0; i <= 11; i++) {
label1.Text = new String(' ', i) + "ping";
System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
for (int i = 11; i >= 0; i--) {
label1.Text = new String(' ', i) + "pong";
System.Threading.Thread.Sleep(100);
Application.DoEvents();
}
}
}
Обратите внимание, что это решение не идеально, так как форма не будет закрыта должным образом.Вам придется прервать программу.Решение, использующее таймер, будет работать более плавно, и при закрытии форма будет работать так, как ожидалось, однако это простое и простое решение.