Pod przyciskiem mam taka funkcje zapisującą zawartość DataGridView do pliku:

 saveFileDialog1->Filter = "Pliki programu Steel (*.steel)|*.txt|Wszystkie pliki (*.*)|*.*";
             int col=0, row=0;
             int i, j;

             String^ linia;

             col = Convert::ToInt32(dataGridView1->ColumnCount);
             row = Convert::ToInt32(dataGridView1->RowCount);

             if ( saveFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
                 StreamWriter^ plik = gcnew StreamWriter(saveFileDialog1->FileName,0,System::Text::Encoding::Default);

                 for (row=0; row<dataGridView1->RowCount; row++) {

                    for (col=0; col<dataGridView1->ColumnCount; col++) {
                        linia += Convert::ToString(dataGridView1->Rows[0]->Cells[col]->Value);

                        if (col<dataGridView1->ColumnCount) {
                            linia += " ; ";
                        }
                    }
                    linia += System::Environment::NewLine;
                }

                 plik->WriteLine(linia);
                 plik->Close();
             } 

Problem w tym, ze jesli mam grida powiedzmy:

200 | 200 | 0 | 50 | 20 | 70 | 100 | 150 | 250

to nie wszystkie dane znajda się w pliku. Mianowicie wpis ma postac " ; ; ; 50 ; 20 ; ; 100 ; 150 ; " gdyż te wartości wpisałem klikając w komórki. Reszta to albo jako dane przy tworzeniu nowego wiersza albo wysumowanie kilku komórek w wierszu. Nie wiem teraz czy jest to dobra metoda zapisu zawartości do pliku.