I have a strange problem. I have a TabControl with two TabPages. Each page has a datagridview. Both datagridviews are pop
This is because a data-bound control(dataGridView2) is not updated until the control is made visible. See this. You can refresh the binding, for example, by programmatically switching to TabPage2 and back to the first tab.
THe only thing I can se at the moment is that you are not doing this on tabpage 2
dataGridView1.Sort(dataGridView1.Columns[1], ListSortDirection.Ascending);
try
dataGridView2.Sort(dataGridView2.Columns[1], ListSortDirection.Ascending);