In my project, I'm using the example 2862.sln for saving the column widths in a boundgrid. It appears not to work, but when I comment out the lines this.gridDataBoundGrid1.BeginUpdate() and the corresponding .EndUpdate(), the columns resize, but is extremely slow (the grid contains 15 columns and 1400 rows).
Also, is there a similar way I can save grid state for columns that are hidden, and columns that have been moved/reordered?
Make sure you are setting grid.AllowResizeToFit = false to turn off the grid's autosizing code that could step on your explicit sizing.
As far a serializing out the column order, the GridBoundColumn names serialization shoul dahndle that. But, as far as hidden columns goes, there is no dictionary object for use with those values. If you want to serialize them, you would have to use your own array similar to how the GridBoundColumn names are done in that sample.