Start CL1.ColumnOrder = 1 CL2.ColumnOrder = 2 CL3.ColumnOrder = 3 programmatically change CL1.ColumnOrder=3 you have this result CL1.ColumnOrder = 3 CL2.ColumnOrder = 2 CL3.ColumnOrder = 1 NOW, if This.ActiveColumn is 3 the active column is CL1 but This.Columns[This.ActiveColumn] is CL3If you change the ColumnOrder value,