Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

бегущая строка

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C# только в данном разделе

Ответ
 
Опции темы
Старый 22.09.2011, 15:39   #1
 Разведчик
Аватар для Nb96
 
Nb96 вызывает надежду
Регистрация: 22.03.2010
Сообщений: 8
Популярность: -29
Сказал(а) спасибо: 3
Поблагодарили 4 раз(а) в 4 сообщениях
 
По умолчанию бегущая строка

Ребят, как сделать бегущую строку в c# ?
  Ответить с цитированием
Старый 22.09.2011, 15:55   #2
 Разведчик
Аватар для •theSaboteur•
 
•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен•theSaboteur• скоро будет известен
Регистрация: 14.07.2011
Сообщений: 27
Популярность: 244
Сказал(а) спасибо: 26
Поблагодарили 47 раз(а) в 37 сообщениях
Отправить сообщение для •theSaboteur• с помощью ICQ
 
По умолчанию бегущая строка

В цикле выводить последовательно символы строки, стирать все это дело, выводить заново
Если нужен код, то уточни хотя бы в консоли ты это делаешь, или в формах - тогда, если не будет лень, что-нибудь накидаю)

Код:
public void printTicker(string line)
        {
            Action act;
                int i = line.Length - 1;                   // Это необходимо для перезаписи первого символа
                int j = 0;                                     // Эта переменная поможет нам передвигать все символы в строке на 1 оффсет вперед
                StringBuilder str = new StringBuilder();      // Можно вобщем то и массив char'ов юзать.. Но я решил воспользоваться этим классом
                str.Length = line.Length
                act = new Action(() =>                 //Это что бы нам не кидали ошибку, о попытке доступа к контролу из стороннего потока :)
                {
                    textBox1.Text = str.ToString();
                });
                while (true)
                {
                    if (i < 0)
                    {
                        i = line.Length - 1;        /*Все символы сдвигаются на 1 оффсет, путем записи на их место предыдущего символа, однако самый первый 
символ так записать нельзя, ибо индекс массива не может быть отрицательным, и нам нужен символ стоящий в начальной строке перед первым символом конечной :) посему на его место пишется символ с индексом i из исходной строки, 
в переменной i содержится индекс символа, предшествующего первому символу конечной строки, когда конечная строка идентична начальной и, соответственно, i уменьшается до отрицательного числа, переменной i надо снова 
присвоить индекс последнего символа начальной строки, таким образом строка будет отображаться по кругу*/
//Ох и загнул я.. Сам не понял что сказал)
                        
                    }
                    for (j = line.Length - 1; j > 0; --j)
                    {
                        str[j] = str[j - 1];                      //Передвигаем символы на 1 позицию
                    }
                    str[0] = line[i];                              //Пишем 1й чар
                        this.BeginInvoke(act);                 //Записываем строку в текстБокс из основного потока :)
                    --i;
                    Thread.Sleep(400);                        //Задержка :)
                }
            
        }
p.s.Добавь в проект BackgroundWorker, в обработчике которого вызывай эту функцию с текстом который надо вывести.
p.p.s. Вместо текст бокса, как ты и сам понимаешь, можно использовать и другие объекты.
p.p.p.s Для Thread.Sleep() необходимо пространство имен System.Threading
________________
Ну что лежишь ты Мурка, на краю дороги
Гробоваая крыышкаа над тобооой

Последний раз редактировалось Hermein; 23.09.2011 в 09:21.
  Ответить с цитированием
Пользователь сказал cпасибо:
PrOveN (28.09.2011)
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] динамическая строка lolwut98 Вопросы и ответы, обсуждения 2 20.09.2011 21:04

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:29.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net