The way to approach this is to have a 6 x 5 array for each character of the alphabet, like:
int[][] letterA = { { 0, 0, 1, 1, 0, 0 },
{ 0, 1, 0, 0, 1, 0 },
{ 1, 1, 0, 0, 1, 1 },
{ 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1 },
{ 1, 1, 0, 0, 1, 1 },
{ 1, 1, 0, 0, 1, 1 }};
You then would merge the letters needed to build the typed in word.
So each line becomes longer with the leds needed to be on.
So thats the business logic for the app.
You now want to create a finitie LED light set, so say 60 x 10 and start from the far right and if the current array value is 1 then display the circle yellow otherwise black.
Hope that helps.
Edit: Programmatically render circles on the form.
You could create a timer than removed all controls within a panel and then you could do:
//word is the merged array of letters like the one above
foreach(int[] line in word)
{
//currentShiftIndex is the shift amount to render control from left to right
int currentShiftIndex = 1;
foreach(int i in line)
{
//set up a control called 'light' for example [im not including that]
light.Left = currentShiftIndex * 10;
light.Background = i == 1 ? "Yellow" : "Black"
}
}
Thats purely an example of rendering one line. Ignore any wrong syntax. Im purely just giving an example on the process of this.
I hope that helps.