I am not sure if you in fact want AppendLine - this ads one "odd" line at the end of of list that in fact is not part of list (its position is GetCount()), but can be used to append a line (by pressing the Enter). It is more or less intended to make inserting ortoghonal - without that, you cannot insert the last line, as inserting always takes place before the current line (ok, you can force ArrayCtrl to insert after the current line, but then you cannot insert the firt line..).