private void レイアウトを名前をつけて保存_ToolStripMenuItem_Click(object sender, EventArgs e) { _LayoutCsv = new CsvData(); _LayoutCsv.UpdateCsvData(dataGridView4); SaveFileDialogAndFileSaveToCSV(_LayoutCsv, "割り当て.csv"); textBoxCompartmentFile.Text = _LayoutCsv.FilePath; }
/// <summary> /// CSVファイル読み込み&dataGridViewへの内容反映 /// </summary> /// <param name="ofd">読み込むファイルのパス</param> /// <param name="dgv"></param> /// <param name="data"></param> /// <param name="cms"></param> private void ReadCsvFile(string path, DataGridView dgv, CsvData data, ContextMenuStrip cms, bool layoutItem) { //名簿ファイル読み込み _Loading = true; if (m_curProject.OpenCsvFile(data, path) == true) { SetHeaderItem(dgv, data, cms, layoutItem); //データの残りを繁栄 SetDataToSell(dgv, data); } _Loading = false; }
private void SaveFileDialogAndFileSaveToCSV(CsvData data, string defaultFileName) { SaveFileDialog sfd = new SaveFileDialog(); sfd.FileName = defaultFileName; sfd.Filter = "CSVファイル(*.csv)|*.csv|すべてのファイル(*.*)|*.*"; sfd.Title = "保存先のファイルを選択してください"; sfd.RestoreDirectory = true; sfd.SupportMultiDottedExtensions = true; if (sfd.ShowDialog() == DialogResult.OK) { data.SaveCSVFile(sfd.FileName); } }
//------------------------ // Methods //------------------------ /// <summary> /// 名簿ファイルから無条件で読み込み /// </summary> /// <param name="csvFilePath"></param> /// <returns></returns> public bool OpenCsvFile( CsvData data, string csvFilePath) { //CSV読み込み、無条件で更新 if (data.ReadFileAuto(csvFilePath) == true) { //名簿が更新されたので編集中フラグON data.Edited = true; //読んだ直後で(名簿ファイルとの)差が無いはずなので(名簿の)未セーブフラグはOFF data.NotSaved = false; //プロジェクトとしては編集が行われたことになるので編集中フラグON _ProjectEdited = true; //プロジェクトとしては内容が変更されているので未セーブフラグON _ProjectNotSaved = true; return true; } else { return false; } }
/// <summary> /// グリッドにデータを反映 /// </summary> /// <param name="dgv"></param> /// <param name="data"></param> public void SetDataToSell(DataGridView dgv, CsvData data) { int rowsCount = data.Rows.Count - 1; for (int i = 0; i < rowsCount; i++) { string[] rows = data.Rows[i + 1]; int cel = 0; foreach (string value in rows) { if (value != null) { dgv.Rows[i].Cells[cel++].Value = value; } else { dgv.Rows[i].Cells[cel++].Value = ""; } } } }
/// <summary> /// グリッドのヘッダを設定 /// </summary> /// <param name="dgv"></param> /// <param name="data"></param> /// <param name="cms"></param> /// <param name="layoutItem">レイアウト対象の識別(名簿のみ使用)</param> public void SetHeaderItem(DataGridView dgv, CsvData data, ContextMenuStrip cms, bool layoutItem) { //読み込んだ名簿を編集画面のグリッドに繁栄 //CSVに合わせてグリッドのサイズを変更 int rowSize = data.Rows.Count - 1; int colSize = data.Rows[0].Length; dgv.ColumnCount = colSize; dgv.RowCount = rowSize; //1行目を見出し行とみなして見出し行を作る string[] title = data.Rows[0]; int col = 0; foreach (string text in title) { //列用のコンテキストメニューの設定 dgv.Columns[col].HeaderCell.ContextMenuStrip = cms; dgv.Columns[col].HeaderText = text; //レイアウト用の見出し設定 SetSpecialHeaderItem(dgv, layoutItem, col++, text); } }