Well, the problem is caused by logical position of RichTextCtrl - it is VSizePos (both top and bottom lines are thick and red), therefore if your layout gets bigger, it gets over the ColumnList (and mouse messages are routed to the "topmost" widget, last in the list).
RichTextCtrl is transparent, therefore "invisible" if it is empty (if it would not empy, you would see the text overwriting the columnlist).
ArrayCtrl works because of order of Ctrls in the layout (is even on top of RichTextCtrl).