For a scroll-able chat output box, I would use an array to maintain the chat history. Every time a chat line is sent, it is added as a new row in the array. Then, the text box would be updated using variables, i.e. FirstRow and LastRow. On every update, you would clear the text box and display the rows specified by the variables.
That way you can also have your scroll controls just change the variables, since you are displaying the rows based on the variables. This would allow for other controls to manage the history, or allow for saving the history.
This is the way I would try to do it, but there are probably better ways.
I hope that helps!