/// <summary> /// 导出按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnOutput_Click(object sender, EventArgs e) { if (this.dgvRear.RowCount < 1) { return; } else if(this.dgvRear.Rows[this.dgvRear.RowCount - 1].Cells[10].Value == null) { MessageBox.Show("表格最后一行没有数据,请进行具体行动选择。"); return; } string path = @"D:\RearInventor.txt"; if (fileHelper == null) { fileHelper = new FileHelper(); } // 导出文件,成功的场合打开文件,失败则给出提示 if (fileHelper.ExportToFile(this.dgvRear, path, startMonth, startPoint, startResource, equipPoint)) { if (DialogResult.OK == MessageBox.Show(this, "文件导出成功,文件目录:\r\n" + path + "需要打开吗?", "文件打开确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) { System.Diagnostics.Process.Start(path); } } else { MessageBox.Show("文件导出失败,请确认" + path +"文件没有被打开,或者" + path.Substring(0,2) + "磁盘已经满了"); } }
/// <summary> /// 导入按钮事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnInput_Click(object sender, EventArgs e) { // 用户选择了文件时 if (DialogResult.OK == ofdFilePath.ShowDialog()) { // 得到用户指定的文件路径 string filePath = ofdFilePath.FileName; if (fileHelper == null) { fileHelper = new FileHelper(); } ArrayList fileContent = fileHelper.ImportFile(filePath); // 文件读取成功时 if (fileContent != null) { // 起始月份获得 startMonth = parseValue(fileContent[1].ToString()); // 起始点数获得 string[] stPointValue = fileContent[3].ToString().Split(char.Parse(FileHelper.separative)); int i = 0; foreach (string stp in stPointValue) { if (i >= startPoint.Length) { MessageBox.Show("请确认文件是否有误。"); return; } startPoint[i] = parseValue(stp); i++; } // 起始资源获得 string[] stResourceValue = fileContent[5].ToString().Split(char.Parse(FileHelper.separative)); i = 0; foreach (string stp in stResourceValue) { if (i >= startResource.Length) { MessageBox.Show("请确认文件是否有误。"); return; } startResource[i] = parseValue(stp); i++; } // 装备点数获得 string[] equipPointValue = fileContent[7].ToString().Split(char.Parse(FileHelper.separative)); i = 0; foreach (string stp in equipPointValue) { if (i >= equipPoint.Length) { MessageBox.Show("请确认文件是否有误。"); return; } equipPoint[i] = parseValue(stp); i++; } // 表格外的内容(包括标题头)删除 for (i = 8; i >= 0; i--) { fileContent.RemoveAt(i); } // 清空表数据 this.dgvRear.Rows.Clear(); // 加载表格内的数据 foreach(object item in fileContent) { this.dgvRear.Rows.Add(); string[] content = item.ToString().Split(char.Parse(FileHelper.separative)); i = 0; foreach(string it in content) { if (i >= this.dgvRear.ColumnCount) { MessageBox.Show("请确认文件是否有误。"); return; } this.dgvRear.Rows[this.dgvRear.RowCount - 1].Cells[i].Value = it; i++; } } // 显示到最后一行 this.dgvRear.FirstDisplayedScrollingRowIndex = this.dgvRear.RowCount - 1; // 选择最后一行 this.dgvRear.Rows[this.dgvRear.RowCount - 1].Selected = true; // 清空具体行动下拉框(基于如6岁不能去赌场此类的考虑) this.cboDetail.Items.Clear(); // 行动与具体行动为空,以表格中为准,不可更改 this.cboDetail.SelectedItem = null; this.cboAction.SelectedItem = null; // 锁定行动下拉框,不可选状态 this.cboAction.Enabled = false; // 显示起始数据 // 初始距离6岁的月份数 this.tbxmonth.Text = startMonth.ToString(); // 初始点数 this.tbxqiz.Text = startPoint[0].ToString(); this.tbxnal.Text = startPoint[1].ToString(); this.tbxzl.Text = startPoint[2].ToString(); this.tbxnl.Text = startPoint[3].ToString(); this.tbxmq.Text = startPoint[4].ToString(); this.tbxpn.Text = startPoint[5].ToString(); this.tbxdd.Text = startPoint[6].ToString(); this.tbxwx.Text = startPoint[7].ToString(); // 装备点数 this.tbxepqiz.Text = equipPoint[0].ToString(); this.tbxepnal.Text = equipPoint[1].ToString(); this.tbxepzl.Text = equipPoint[2].ToString(); this.tbxepnl.Text = equipPoint[3].ToString(); this.tbxepmq.Text = equipPoint[4].ToString(); this.tbxeppn.Text = equipPoint[5].ToString(); this.tbxepdd.Text = equipPoint[6].ToString(); } else { MessageBox.Show("打开文件出错,请确认文件是否有误。"); } } }