//Redraws the conversation window in the GUI private void _DrawConversation() { //Only proceed if there is a valid conversation if (activeConversation != null) { //Clear the GUI first and empty the list of stored messages conversationView.RemoveAllViews(); allMessages = new ConcurrentDictionary <string, MessageView>(); //Grab all the messages from the conversation and add them to the GUI IList <IMessage> allMsgs = layerClient.GetMessages(activeConversation); for (int i = 0; i < allMsgs.Count; i++) { AddMessageToView(allMsgs[i]); } //After redrawing, force the scroll view to the bottom (most recent message) conversationScroll.Post(() => { conversationScroll.FullScroll(FocusSearchDirection.Down); }); } }