Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#4.0

Scrolling Text

4.00/5 (1 vote)
31 Aug 2012CPOL 11.9K  
A function to generate an endless collection of scrolling text for your use/amusement.

For situations where you might have a need for text that can scroll, just a little simple toy method that'll allow you to efficiently generate the strings for such.

C#
 public IEnumerable<string> ScrollableText(string text, int charactersToDisplay)
{
    if (string.IsNullOrWhiteSpace(text))
        throw new ArgumentException("Text cannot be null, empty, or whitespace.", "text");
    if (charactersToDisplay < 1)
        throw new ArgumentException("You must specify at least one character to display.", "charactersToDisplay");

    string[] states;
    
    if (text.Length <= charactersToDisplay)
    {
        states = new string[] { text };
    }
    else
    {
        states = new string[text.Length];

        string sourceString = string.Concat(text, text);
    
        // Build the different states of the scrolling text.
        for (int i = 0; i < text.Length; ++i)
            states[i] = sourceString.Substring(i, charactersToDisplay);
    }

    int index = 0;
    
    // Cycle through the different states of the scrolling text, ad nauseum.
    while (true)
    {
        yield return states[index];
        
        if (++index >= states.Length)
            index = 0;
    }
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)