private void singleValueRdo_CheckedChanged(object sender, EventArgs e) { bool chk = (sender as RadioButton).Checked; if (!chk) { singleValueTxt.Enabled = false; return; } RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (o != null) { o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; } if (inputFormType == InputFormType.FlowConditionsSettingVariable) { dataGridView.Enabled = true; dataGridView.Rows.Clear(); DataGridViewUtility.InitializeDataGridView(dataGridView, 2, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, true, noRowNum); dataGridView.Columns[0].Name = "邊界時間"; dataGridView.Columns[1].Name = colName; FillDataGridView(); } else { singleValueTxt.Enabled = true; dataGridView.Enabled = false; } }
private bool ConvertWaterLevelData() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int jw = jStart; jw < jStart + rowCount; ++jw) { o.Value2D()[0, jw - jStart] = Convert.ToDouble(v[iStart, jw].Value); } break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int jw = jStart; jw < jStart + rowCount; ++jw) { for (int iw = iStart; iw < iStart + colCount; ++iw) { o.Array2D()[iw - iStart, jw - jStart] = Convert.ToDouble(v[iw, jw].Value); } } break; } } catch { return(false); } return(true); }
private void type2Rdo_CheckedChanged(object sender, EventArgs e) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if ((sender as RadioButton).Checked && o.check == false) { o.check = true; } }
private void InitTableDepthAverageConcentration() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (o == null) { return; } type1Rdo.Visible = false; type2Rdo.Visible = false; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: //buttonText = "進階 - 逐點輸入"; for (int iw = iStart; iw < iStart + p.sedimentParticlesNumber; ++iw) { //填入橫排標題,泥砂數目(K) dataGridView[iw, jStart - 1].Value = iTitle + (iw - iStart + 1).ToString(); dataGridView[iw, jStart - 1].Style.BackColor = colHeaderColor1; } type1Btn.Enabled = false; type2Btn.Enabled = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: //顯示I左方垂直索引 dataGridView[0, 1].Value = ""; dataGridView[0, 1].Style.BackColor = rowHeaderColor; for (int jw = jStart; jw < jStart + p.inputGrid.GetI; ++jw) { dataGridView[0, jw].Value = (jw - jStart).ToString(); dataGridView[0, jw].Style.BackColor = rowHeaderColor; } //buttonText = "均一值"; for (int iw = iStart; iw < iStart + p.inputGrid.GetJ; ++iw) { //填入橫排標題,I個 dataGridView[iw, 1].Value = (iw - iStart + 1).ToString(); dataGridView[iw, 1].Style.BackColor = colHeaderColor1; } for (int iw = iStart; iw < iStart + p.sedimentParticlesNumber; ++iw) { //填入標籤標題,K個 dataGridView[iw, 0].Value = iTitle + (iw - iStart + 1).ToString(); dataGridView[iw, 0].Style.BackColor = (tabIndex == (iw - iStart)) ? tabActiveColor : tabItemColor; } //b = new DataGridViewButtonCell(); //b.Value = "套用到全部"; //b.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; //dataGridView[1, jStart + rowCount + 1] = b; type1Btn.Enabled = true; type2Btn.Enabled = false; break; } //b = new DataGridViewButtonCell(); //b.Value = buttonText; //b.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; //dataGridView[0, jStart + rowCount + 1] = b; }
private void InitTableWaterLevel() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (o == null) { return; } if (p.IsVariableFlowType()) { //變量流需顯示邊界時間欄位 dataGridView[0, jStart - 1].Value = timeTitle; dataGridView[0, jStart - 1].Style.BackColor = rowHeaderColor; for (int jw = jStart; jw < jStart + p.boundaryTimeNumber; ++jw) { dataGridView[0, jw].Value = p.boundaryTime[jw - jStart].ToString(); dataGridView[0, jw].Style.BackColor = rowHeaderColor; } } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int iw = iStart; iw < iStart + 1; ++iw) { //填入橫排標題, 只有一欄 dataGridView[iw, jStart - 1].Value = iTitle; dataGridView[iw, jStart - 1].Style.BackColor = colHeaderColor1; } type1Btn.Enabled = false; type2Btn.Enabled = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int iw = iStart; iw < iStart + colCount; ++iw) { //填入橫排標題 dataGridView[iw, jStart - 1].Value = iTitle + (iw - iStart + 1).ToString(); dataGridView[iw, jStart - 1].Style.BackColor = colHeaderColor1; } type1Btn.Enabled = true; type2Btn.Enabled = false; break; } if (o.check) { type2Rdo.Checked = true; } else { type1Rdo.Checked = true; } }
private void BottomBedLoadFluxApplyAll() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int kw = 1; kw < p.sedimentParticlesNumber; ++kw) { for (int tw = jStart; tw < jStart + (p.IsConstantFlowType() ? 1 : p.boundaryTimeNumber); ++tw) { for (int jw = iStart; jw < iStart + p.inputGrid.GetJ; ++jw) { o.Array3D()[kw, jw - iStart, tw - jStart] = o.Array3D()[0, jw - iStart, tw - jStart]; } } } }
private void tableValueRdo_CheckedChanged(object sender, EventArgs e) { bool chk = (sender as RadioButton).Checked; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (chk) { if (o.type != RiverSimulationProfile.TwoInOne.Type.UseArray) { o.type = RiverSimulationProfile.TwoInOne.Type.UseArray; CreateData(o); InitializeDataGridView(); } } }
private bool ConvertType5() { try { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; o.Value2D()[0, 0] = Convert.ToDouble(dataGridView1[0, 0].Value); o.Value2D()[1, 0] = Convert.ToDouble(dataGridView1[1, 0].Value); o.Value2D()[2, 0] = Convert.ToDouble(dataGridView1[2, 0].Value); } catch { return(false); } return(true); }
private void CreateData(object d) { RiverSimulationProfile.TwoInOne o = d as RiverSimulationProfile.TwoInOne; RiverSimulationProfile.TwoInOne _d = null; Debug.Assert(o != null); if (formType == FormType.FlowQuantity || formType == FormType.WaterLevel) { _data = new RiverSimulationProfile.TwoInOne(d as RiverSimulationProfile.TwoInOne); _d = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(_d != null); if (o.ValueNull() || o.ArrayNull() || (o.valueType == RiverSimulationProfile.TwoInOne.ValueType.TwoDim && (o.Value2D().GetLength(0) != colCount || o.Value2D().GetLength(1) != rowCount)) || (o.valueType == RiverSimulationProfile.TwoInOne.ValueType.ThreeDim && (o.Value3D().GetLength(0) != colCount || o.Value3D().GetLength(1) != rowCount))) { //rowCount : Q1 ~ Q5, colCount : J1 ~ J15 //_data = new RiverSimulationProfile.TwoInOne(colCount, rowCount); _d.Create2D(colCount, rowCount); _d.type = RiverSimulationProfile.TwoInOne.Type.UseValue; } } else if (formType == FormType.BottomBedLoadFlux) { _data = new RiverSimulationProfile.TwoInOne(d as RiverSimulationProfile.TwoInOne); _d = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(_d != null); if (o.ValueNull() || o.ArrayNull()) { //rowCount : Q1 ~ Q5, colCount : J1 ~ J15 // _data = new RiverSimulationProfile.TwoInOne(p.boundaryTimeNumber, p.sedimentParticlesNumber, p.inputGrid.GetJ); //[T, K, J] //_data = new RiverSimulationProfile.TwoInOne(p.sedimentParticlesNumber, p.inputGrid.GetJ, p.boundaryTimeNumber); //[K, J, T] //_d.Create3D(p.sedimentParticlesNumber, p.inputGrid.GetJ, p.boundaryTimeNumber); _d.Create3D(p.sedimentParticlesNumber, p.inputGrid.GetJ, rowCount); _d.type = RiverSimulationProfile.TwoInOne.Type.UseValue; } } else if (formType == FormType.DepthAverageConcentration) { _data = new RiverSimulationProfile.TwoInOne(d as RiverSimulationProfile.TwoInOne); _d = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(_d != null); if (o.ValueNull() || o.ArrayNull()) { //rowCount : Q1 ~ Q5, colCount : J1 ~ J15 _d.Create3D(p.sedimentParticlesNumber, p.inputGrid.GetJ, p.inputGrid.GetI); } } }
private bool AutoFinishConvertFlowQualityCell() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; double sum = 0.0; bool allPass = true; for (int jw = jStart; jw < jStart + rowCount; ++jw) { if (!CalFlowQualitySumOfOneRow(jw, ref sum)) { allPass = false; continue; } dataGridView[iStart + colCount, jw].Value = (100.0 - sum).ToString(); } return(allPass); }
private bool ConvertType7() { try { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int i = 0; i < colCount; ++i) { o.Array3D()[i, 0, 0] = Convert.ToDouble(dataGridView1[i, 0].Value); o.Array3D()[i, 0, 1] = Convert.ToDouble(dataGridView2[i, 0].Value); o.Array3D()[i, 0, 2] = Convert.ToDouble(dataGridView3[i, 0].Value); } } catch { return(false); } return(true); }
private bool ConvertType2() { try { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int i = 0; i < colCount; ++i) { for (int j = 0; j < rowCount; ++j) { o.Value3D()[i, j, 0] = Convert.ToDouble(dataGridView1[i, j].Value); o.Value3D()[i, j, 1] = Convert.ToDouble(dataGridView2[i, j].Value); } } } catch { return(false); } return(true); }
private bool ConvertFlowConditionsSettingVariable() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int i = 1; i < v.ColumnCount; ++i) { for (int j = 0; j < v.RowCount; ++j) { o.Array2D()[i - 1, j] = Convert.ToDouble(v[i, j].Value); } } } catch { return(false); } return(true); }
private bool ConvertFlowConditionsSettingConstant() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int i = 0; i < v.ColumnCount; ++i) { o.Array2D()[i, 0] = Convert.ToDouble(v[i, 0].Value); } if (singleValueTxt.Enabled) { o.ValueDouble()[0] = Convert.ToDouble(singleValueTxt.Text); } } catch { return(false); } return(true); }
private bool AlertBoundaryTimeChange(ref RiverSimulationProfile.TwoInOne o) { if (o == null) { return(false); } if (p.IsConstantFlowType()) { //定量流時不檢查 return(true); } if (p.boundaryTime == null || p.boundaryTime.GetLength(0) != p.boundaryTimeNumber) { MessageBox.Show("邊界時間尚未輸入完成", "確認", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(false); } if (!o.ArrayNull() && o.Array2D().GetLength(1) != p.boundaryTimeNumber) { //邊界時間有輸入,但與邊界時間數目不符合 if (DialogResult.OK == MessageBox.Show("改變過邊界時間數目需要重新輸入所有流況資料,請確認?", "確認", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation)) { RiverSimulationProfile.TwoInOne.Type tp = o.type; RiverSimulationProfile.TwoInOne.ValueType vt = o.valueType; RiverSimulationProfile.TwoInOne.ArrayType at = o.arrayType; o = new RiverSimulationProfile.TwoInOne(vt, at, tp); return(true); } else { p.boundaryTimeNumber = o.Array2D().GetLength(1); boundaryTimeNumberTxt.Text = p.boundaryTimeNumber.ToString(); return(false); } } return(true); }
private bool ConvertTwoInOneDouble() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; for (int i = 0; i < colCount; ++i) { for (int j = 0; j < rowCount; ++j) { o.Array2D()[i, j] = Convert.ToDouble(v[i, j].Value); } } if (singleValueTxt.Enabled) { o.ValueDouble()[0] = Convert.ToDouble(singleValueTxt.Text); } } catch { return(false); } return(true); }
private bool ConvertDepthAverageConcentrationData() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int tw = jStart; tw < jStart + 1; ++tw) { for (int kw = iStart; kw < iStart + p.sedimentParticlesNumber; ++kw) { o.Value3D()[kw - iStart, 0, 0] = Convert.ToDouble(v[kw, tw].Value); } } break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int jw = jStart; jw < jStart + p.inputGrid.GetI; ++jw) { for (int iw = iStart; iw < iStart + p.inputGrid.GetJ; ++iw) { o.Array3D()[tabIndex, iw - iStart, jw - jStart] = Convert.ToDouble(v[iw, jw].Value); } } break; } } catch { return(false); } return(true); }
private bool ConvertBottomBedLoadFluxData() { try { DataGridView v = dataGridView; RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int tw = jStart; tw < jStart + (p.IsConstantFlowType() ? 1 : p.boundaryTimeNumber); ++tw) { for (int kw = iStart; kw < iStart + p.sedimentParticlesNumber; ++kw) { o.Value3D()[kw - iStart, 0, tw - jStart] = Convert.ToDouble(v[kw, tw].Value); } } break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int tw = jStart; tw < jStart + (p.IsConstantFlowType() ? 1 : p.boundaryTimeNumber); ++tw) { for (int jw = iStart; jw < iStart + p.inputGrid.GetJ; ++jw) { o.Array3D()[tabIndex, jw - iStart, tw - jStart] = Convert.ToDouble(v[jw + 1, tw + 1].Value); } } break; } } catch { return(false); } return(true); }
private void InitializeDataGridView() { if (inputFormType == InputFormType.SeparateForm) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum, false, true); } else if (inputFormType == InputFormType.VerticalVelocityDistributionForm) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum, false, true); dataGridView.Columns[0].Name = "垂向分層位置"; dataGridView.Columns[1].Name = "比例係數"; } else if (inputFormType == InputFormType.BoundaryTime) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum, false, false); } else if (inputFormType == InputFormType.TwoInOneDouble || inputFormType == InputFormType.TwoInOneDoubleGreaterThanZero || inputFormType == InputFormType.TwoInOneDoubleGreaterThanOrEqualZero) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(o != null); singleValueTxt.Text = o.ValueDouble()[0].ToString(); DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum); selInputBtn.Visible = true; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.UseValue: singleValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: tableValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.None: singleValueRdo.Checked = false; tableValueRdo.Checked = false; singleValueTxt.Enabled = false; dataGridView.Enabled = false; break; } } else if (inputFormType == InputFormType.GenericDouble || inputFormType == InputFormType.GenericDoubleGreaterThanZero || inputFormType == InputFormType.GenericDoubleGreaterThanOrEqualZero) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum); } else if (inputFormType == InputFormType.FlowConditionsSettingConstant) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(o != null); singleValueTxt.Text = o.ValueDouble()[0].ToString(); DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, "", colName, rowName, nocolNum, true); dataGridView.Rows[0].HeaderCell.Value = tableName; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.UseValue: singleValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: tableValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.None: singleValueRdo.Checked = false; tableValueRdo.Checked = false; singleValueTxt.Enabled = false; dataGridView.Enabled = false; break; } } else if (inputFormType == InputFormType.FlowConditionsSettingVariable) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(o != null); switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.UseValue: singleValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: tableValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.None: singleValueRdo.Checked = false; tableValueRdo.Checked = false; singleValueTxt.Enabled = false; dataGridView.Enabled = false; break; } singleValueTxt.Visible = (inputFormType == InputFormType.FlowConditionsSettingConstant) ? true :false; } else if (inputFormType == InputFormType.SeabedThicknessForm) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum, false, true); dataGridView.Rows[0].HeaderCell.Value = "作用層"; } else if (inputFormType == InputFormType.SedimentCompositionRatioForm) { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum, false, true); dataGridView.Rows[0].HeaderCell.Value = "作用層"; } else if (inputFormType == InputFormType.BottomBedParticleSizeRatio) { InitTableBottomBedParticleSizeRatio(); } else { DataGridViewUtility.InitializeDataGridView(dataGridView, colCount, rowCount, colWidth, rowHeadersWidth, tableName, colName, rowName, nocolNum, noRowNum); } FillDataGridView(); }
private void CreateData(object d) { RiverSimulationProfile.TwoInOne o = d as RiverSimulationProfile.TwoInOne; RiverSimulationProfile.TwoInOne _d = null; switch (_inputFormType) { case InputFormType.TwoInOneDouble: case InputFormType.TwoInOneDoubleGreaterThanZero: case InputFormType.TwoInOneDoubleGreaterThanOrEqualZero: Debug.Assert(o != null); _data = new RiverSimulationProfile.TwoInOne(d as RiverSimulationProfile.TwoInOne); _d = _data as RiverSimulationProfile.TwoInOne; Debug.Assert(_d != null); if (o.ValueNull() || o.ArrayNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateDouble2D(colCount, rowCount); } if (_d.Array2D().GetLength(0) != colCount || _d.Array2D().GetLength(1) != rowCount) { Debug.Assert(false); } break; case InputFormType.GenericDouble: case InputFormType.GenericDoubleGreaterThanZero: case InputFormType.GenericDoubleGreaterThanOrEqualZero: case InputFormType.BottomBedParticleSizeRatio: if (d == null) { _data = new double[colCount, rowCount]; } else { _data = (double [, ])(d as double[, ]).Clone(); } break; case InputFormType.SeabedThicknessForm: if (d == null) { _data = new double[rowCount]; } else { _data = (double [])(d as double[]).Clone(); } break; case InputFormType.SedimentCompositionRatioForm: if (d == null) { _data = new double[colCount, rowCount]; } else { _data = (double [, ])(d as double[, ]).Clone(); } break; case InputFormType.SeparateForm: case InputFormType.BoundaryTime: if (d == null) { _data = new double[rowCount]; } else { _data = (double [])(d as double[]).Clone(); } break; case InputFormType.VerticalVelocityDistributionForm: if (d == null) { _data = new double[2, rowCount]; } else { _data = (double [, ])(d as double[, ]).Clone(); } break; case InputFormType.BottomElevationForm: if (d == null) { _data = new CoorPoint[colCount, rowCount]; } else { _data = (CoorPoint[, ])(d as CoorPoint[, ]).Clone(); } break; case InputFormType.FlowConditionsSettingConstant: case InputFormType.FlowConditionsSettingVariable: Debug.Assert(o != null); _data = new RiverSimulationProfile.TwoInOne(d as RiverSimulationProfile.TwoInOne); _d = _data as RiverSimulationProfile.TwoInOne; if (o.ValueNull() || o.ArrayNull()) { //rowCount : Q1 ~ Q5, colCount : J1 ~ J15 _d.CreateDouble2D(colCount, rowCount); // (_data as RiverSimulationProfile.TwoInOne).dataValue = new double[colCount, rowCount]; } break; } }
private void CreateData(Object d) { RiverSimulationProfile p = RiverSimulationProfile.profile; RiverSimulationProfile.TwoInOne o = d as RiverSimulationProfile.TwoInOne; RiverSimulationProfile.TwoInOne _d = null; //第1, 3種:亞臨界流、均一值/逐點給、定量流 if (inputData.criticalFlowType == RiverSimulationProfile.CriticalFlowType.SubCriticalFlow && p.IsConstantFlowType()) { if (d == null) { _data = new RiverSimulationProfile.TwoInOne(RiverSimulationProfile.TwoInOne.ValueType.TwoDim, RiverSimulationProfile.TwoInOne.ArrayType.ThreeDim, RiverSimulationProfile.TwoInOne.Type.UseValue); _d = _data as RiverSimulationProfile.TwoInOne; } else { _data = new RiverSimulationProfile.TwoInOne(o); _d = _data as RiverSimulationProfile.TwoInOne; } if (_d.type == RiverSimulationProfile.TwoInOne.Type.UseValue) { colCount = 2; rowCount = 1; _inputFormType = InputFormType.Type1; tabPage1.Parent = tabControl; tabPage2.Parent = null; tabPage3.Parent = null; tabPage1.Text = ""; if (_d.ValueNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateValue2D(colCount, rowCount); } } else { colCount = inputData.sideFlowPoints.Count; rowCount = 1; _inputFormType = InputFormType.Type3; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = null; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; if (_d.ArrayNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateArray3D(colCount, rowCount, 2); } } } //第2, 4種:亞臨界流、均一值/逐點給、變量流 else if (inputData.criticalFlowType == RiverSimulationProfile.CriticalFlowType.SubCriticalFlow && p.IsVariableFlowType()) { if (d == null) { _data = new RiverSimulationProfile.TwoInOne(RiverSimulationProfile.TwoInOne.ValueType.ThreeDim, RiverSimulationProfile.TwoInOne.ArrayType.ThreeDim, RiverSimulationProfile.TwoInOne.Type.UseValue); _d = _data as RiverSimulationProfile.TwoInOne; } else { _data = new RiverSimulationProfile.TwoInOne(o); _d = _data as RiverSimulationProfile.TwoInOne; } if (_d.type == RiverSimulationProfile.TwoInOne.Type.UseValue) { colCount = 1; rowCount = p.boundaryTime.Length; _inputFormType = InputFormType.Type2; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = null; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; if (_d.ValueNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateValue3D(colCount, rowCount, 2); } } else { colCount = inputData.sideFlowPoints.Count; rowCount = p.boundaryTime.Length; _inputFormType = InputFormType.Type4; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = null; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; if (_d.ArrayNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateArray3D(colCount, rowCount, 2); } } } //第5, 7種:超臨界流、均一值/逐點給、定量流 else if (inputData.criticalFlowType == RiverSimulationProfile.CriticalFlowType.SuperCriticalFlow && p.IsConstantFlowType()) { if (d == null) { _data = new RiverSimulationProfile.TwoInOne(RiverSimulationProfile.TwoInOne.ValueType.TwoDim, RiverSimulationProfile.TwoInOne.ArrayType.ThreeDim, RiverSimulationProfile.TwoInOne.Type.UseValue); _d = _data as RiverSimulationProfile.TwoInOne; } else { _data = new RiverSimulationProfile.TwoInOne(o); _d = _data as RiverSimulationProfile.TwoInOne; } if (_d.type == RiverSimulationProfile.TwoInOne.Type.UseValue) { colCount = 3; rowCount = 1; _inputFormType = InputFormType.Type5; tabPage1.Parent = tabControl; tabPage2.Parent = null; tabPage3.Parent = null; tabPage1.Text = ""; if (_d.ValueNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateValue2D(colCount, rowCount); } } else { colCount = inputData.sideFlowPoints.Count; rowCount = 1; _inputFormType = InputFormType.Type7; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = tabControl; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; tabPage3.Text = "水位(m)"; if (_d.ArrayNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateArray3D(colCount, rowCount, 3); } } } //第6, 8種:超臨界流、均一值/逐點給、變量流 else if (inputData.criticalFlowType == RiverSimulationProfile.CriticalFlowType.SuperCriticalFlow && p.IsVariableFlowType()) { if (d == null) { _data = new RiverSimulationProfile.TwoInOne(RiverSimulationProfile.TwoInOne.ValueType.ThreeDim, RiverSimulationProfile.TwoInOne.ArrayType.ThreeDim, RiverSimulationProfile.TwoInOne.Type.UseValue); _d = _data as RiverSimulationProfile.TwoInOne; } else { _data = new RiverSimulationProfile.TwoInOne(o); _d = _data as RiverSimulationProfile.TwoInOne; } if (_d.type == RiverSimulationProfile.TwoInOne.Type.UseValue) { colCount = 1; rowCount = p.boundaryTime.Length; _inputFormType = InputFormType.Type6; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = tabControl; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; tabPage3.Text = "水位(m)"; if (_d.ValueNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateValue3D(colCount, rowCount, 3); } } else { colCount = inputData.sideFlowPoints.Count; rowCount = p.boundaryTime.Length; _inputFormType = InputFormType.Type8; tabPage1.Parent = tabControl; tabPage2.Parent = tabControl; tabPage3.Parent = tabControl; tabPage1.Text = "主流方向流量(cms)"; tabPage2.Text = "側方向流量(cms)"; tabPage3.Text = "水位(m)"; if (_d.ArrayNull()) { (_data as RiverSimulationProfile.TwoInOne).CreateArray3D(colCount, rowCount, 3); } } } }
private void type1Btn_Click(object sender, EventArgs e) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (formType == FormType.FlowQuantity) { //流量 - 均一值 與 逐點輸入切換 if (!ConvertFlowQuantityData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: return; case RiverSimulationProfile.TwoInOne.Type.UseArray: o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; break; } InitializeDataGridView(); } else if (formType == FormType.WaterLevel) { //流量 - 均一值 與 逐點輸入切換 if (!ConvertWaterLevelData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: return; case RiverSimulationProfile.TwoInOne.Type.UseArray: o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; break; } InitializeDataGridView(); } else if (formType == FormType.BottomBedLoadFlux) { //底床載 - 均一值 與 逐點輸入切換 if (!ConvertBottomBedLoadFluxData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: return; case RiverSimulationProfile.TwoInOne.Type.UseArray: o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; break; } InitializeDataGridView(); } else if (formType == FormType.DepthAverageConcentration) { //均一值 與 逐點輸入切換 if (!ConvertDepthAverageConcentrationData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: return; case RiverSimulationProfile.TwoInOne.Type.UseArray: o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; break; } InitializeDataGridView(); } }
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (formType == FormType.DepthAverageConcentration && e.ColumnIndex == 0 && e.RowIndex == jStart + rowCount + 1) { //均一值 與 逐點輸入切換 if (!ConvertDepthAverageConcentrationData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: o.type = RiverSimulationProfile.TwoInOne.Type.UseArray; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: o.type = RiverSimulationProfile.TwoInOne.Type.UseValue; break; } InitializeDataGridView(); } else if (formType == FormType.BottomBedLoadFlux && e.ColumnIndex == iStart && e.RowIndex == jStart - 1) { //套用到全部 if (!ConvertBottomBedLoadFluxData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } BottomBedLoadFluxApplyAll(); InitializeDataGridView(); } else if (formType == FormType.BottomBedLoadFlux && e.RowIndex == 0 && e.ColumnIndex >= iStart + 1 && e.ColumnIndex < iStart + p.sedimentParticlesNumber + 1 && o.type == RiverSimulationProfile.TwoInOne.Type.UseArray) { //三維陣列標籤列 int index = e.ColumnIndex - iStart - 1; if (tabIndex != index) { if (!ConvertBottomBedLoadFluxData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } tabIndex = index; InitializeDataGridView(); } } else if (formType == FormType.DepthAverageConcentration && e.RowIndex == 0 && e.ColumnIndex >= iStart && e.ColumnIndex < iStart + p.sedimentParticlesNumber && o.type == RiverSimulationProfile.TwoInOne.Type.UseArray) { //三維陣列標籤列 int index = e.ColumnIndex - iStart; if (tabIndex != index) { if (!ConvertDepthAverageConcentrationData()) { MessageBox.Show("輸入資料格式錯誤,請先修正!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } tabIndex = index; InitializeDataGridView(); } } //else if (formType == FormType.FlowQuantity && e.ColumnIndex == 0 && e.RowIndex == jStart + rowCount) //{ //進階模式勾選 // dataGridView[0, jStart + rowCount].Value = !(bool)dataGridView[0, jStart + rowCount].Value; // o.check = (bool)dataGridView[0, jStart + rowCount].Value; //} //else if (formType == FormType.FlowQuantity && o.type == RiverSimulationProfile.TwoInOne.Type.UseArray && // e.ColumnIndex >= iStart && e.ColumnIndex < iStart + colCount - 1 && e.RowIndex >= jStart && e.RowIndex < jStart + rowCount) //{ // AutoFinishConvertFlowQualityCell(); //} }
private void FillDataGridView() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (formType == FormType.FlowQuantity || formType == FormType.WaterLevel) { switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int jw = jStart; jw < jStart + rowCount; ++jw) { dataGridView[iStart, jw].Value = o.Value2D()[0, jw - jStart].ToString(); dataGridView[iStart, jw].ReadOnly = false; dataGridView[iStart, jw].Style.BackColor = tabPageItemColor; } dataGridView.CurrentCell = dataGridView[iStart, jStart]; //dataGridView[1, jStart]. = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: if (formType == FormType.FlowQuantity) { for (int jw = jStart; jw < jStart + rowCount; ++jw) { dataGridView[iStart, jw].Value = o.Value2D()[0, jw - jStart].ToString(); dataGridView[iStart, jw].ReadOnly = true; dataGridView[iStart, jw].Style.BackColor = tabPageItemColor2; } } for (int jw = jStart; jw < jStart + rowCount; ++jw) { for (int iw = iStart; iw < iStart + colCount; ++iw) { if (formType == FormType.FlowQuantity) { dataGridView[iw + 1, jw].Value = o.Array2D()[iw - iStart, jw - jStart].ToString(); dataGridView[iw + 1, jw].ReadOnly = false; dataGridView[iw + 1, jw].Style.BackColor = tabPageItemColor; } else { dataGridView[iw, jw].Value = o.Array2D()[iw - iStart, jw - jStart].ToString(); dataGridView[iw, jw].ReadOnly = false; dataGridView[iw, jw].Style.BackColor = tabPageItemColor; } } } if (formType == FormType.FlowQuantity) { AutoFinishConvertFlowQualityCell(); } dataGridView.CurrentCell = dataGridView[iStart, jStart]; break; } } else if (formType == FormType.BottomBedLoadFlux) { switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int tw = jStart; tw < jStart + (p.IsConstantFlowType() ? 1 : p.boundaryTimeNumber); ++tw) { for (int kw = iStart; kw < iStart + p.sedimentParticlesNumber; ++kw) { dataGridView[kw, tw].Value = o.Value3D()[kw - iStart, 0, tw - jStart].ToString(); dataGridView[kw, tw].ReadOnly = false; dataGridView[kw, tw].Style.BackColor = tabPageItemColor; } } dataGridView.CurrentCell = dataGridView[iStart, jStart]; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int tw = jStart; tw < jStart + (p.IsConstantFlowType() ? 1 : p.boundaryTimeNumber); ++tw) { for (int jw = iStart; jw < iStart + p.inputGrid.GetJ; ++jw) { dataGridView[jw + 1, tw + 1].Value = o.Array3D()[tabIndex, jw - iStart, tw - jStart].ToString(); dataGridView[jw + 1, tw + 1].ReadOnly = false; dataGridView[jw + 1, tw + 1].Style.BackColor = tabPageItemColor; } dataGridView[iStart, tw + 1].Value = o.Value3D()[tabIndex, 0, tw - jStart].ToString(); dataGridView[iStart, tw + 1].ReadOnly = true; dataGridView[iStart, tw + 1].Style.BackColor = tabPageItemColor2; } dataGridView.CurrentCell = dataGridView[iStart, jStart]; break; } } else if (formType == FormType.DepthAverageConcentration) { switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int jw = jStart; jw < jStart + 1; ++jw) { for (int iw = iStart; iw < iStart + p.sedimentParticlesNumber; ++iw) { dataGridView[iw, jw].Value = o.Value3D()[iw - iStart, 0, 0].ToString(); dataGridView[iw, jw].ReadOnly = false; dataGridView[iw, jw].Style.BackColor = tabPageItemColor; } } dataGridView.CurrentCell = dataGridView[iStart, jStart]; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: for (int jw = jStart; jw < jStart + p.inputGrid.GetI; ++jw) { for (int iw = iStart; iw < iStart + p.inputGrid.GetJ; ++iw) { dataGridView[iw, jw].Value = o.Array3D()[tabIndex, iw - iStart, jw - jStart].ToString(); dataGridView[iw, jw].ReadOnly = false; dataGridView[iw, jw].Style.BackColor = tabPageItemColor; } } dataGridView.CurrentCell = dataGridView[iStart, jStart]; break; } } dataGridView.PerformLayout(); }
private void InitTableFlowQuantity() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (o == null) { return; } if (p.IsVariableFlowType()) { //變量流需顯示邊界時間欄位 dataGridView[0, jStart - 1].Value = timeTitle; dataGridView[0, jStart - 1].Style.BackColor = rowHeaderColor; for (int jw = jStart; jw < jStart + p.boundaryTimeNumber; ++jw) { dataGridView[0, jw].Value = p.boundaryTime[jw - jStart].ToString(); dataGridView[0, jw].Style.BackColor = rowHeaderColor; } } switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int iw = iStart; iw < iStart + 1; ++iw) { //填入橫排標題, 只有一欄 dataGridView[iw, jStart - 1].Value = iTitle; dataGridView[iw, jStart - 1].Style.BackColor = colHeaderColor1; } type1Btn.Enabled = false; type2Btn.Enabled = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: dataGridView[iStart, jStart - 1].Value = iTitle; dataGridView[iStart, jStart - 1].Style.BackColor = colHeaderColor1; for (int iw = iStart; iw < iStart + colCount; ++iw) { //填入橫排標題 dataGridView[iw + 1, jStart - 1].Value = iTitle + (iw - iStart + 1).ToString() + "比例"; dataGridView[iw + 1, jStart - 1].Style.BackColor = colHeaderColor2; } type1Btn.Enabled = true; type2Btn.Enabled = false; break; } if (o.check) { type2Rdo.Checked = true; } else { type1Rdo.Checked = true; } //DataGridViewButtonCell b = new DataGridViewButtonCell(); //b.Value = buttonText; //b.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; //dataGridView[0, jStart + rowCount + 1] = b; //if (formType == FormType.FlowQuantity) //{ // DataGridViewCheckBoxCell c = new DataGridViewCheckBoxCell(); // c.Value = o.check; // c.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; // dataGridView[0, jStart + rowCount] = c; //} }
private void InitTableBottomBedLoadFlux() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; if (o == null) { return; } int jShift = (o.type == RiverSimulationProfile.TwoInOne.Type.UseArray) ? 1 : 0; if (p.IsVariableFlowType()) { //變量流需顯示邊界時間欄位 dataGridView[0, jStart - 1 + jShift].Value = timeTitle; dataGridView[0, jStart - 1 + jShift].Style.BackColor = rowHeaderColor; for (int jw = jStart; jw < jStart + p.boundaryTimeNumber; ++jw) { dataGridView[0, jw + jShift].Value = p.boundaryTime[jw - jStart].ToString(); dataGridView[0, jw + jShift].Style.BackColor = rowHeaderColor; } } //DataGridViewButtonCell b = null; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.None: case RiverSimulationProfile.TwoInOne.Type.UseValue: for (int iw = iStart; iw < iStart + p.sedimentParticlesNumber; ++iw) { //填入橫排標題,泥砂數目(K) dataGridView[iw, jStart - 1].Value = iTitle + (iw - iStart + 1).ToString(); dataGridView[iw, jStart - 1].Style.BackColor = colHeaderColor1; } type1Btn.Enabled = false; type2Btn.Enabled = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: dataGridView[iStart, jStart].Value = "粒徑" + (tabIndex + 1).ToString(); dataGridView[iStart, jStart].Style.BackColor = colHeaderColor2; for (int iw = iStart; iw < iStart + p.inputGrid.GetJ; ++iw) { //填入橫排標題,J個 dataGridView[iw + 1, jStart].Value = (iw - iStart + 1).ToString() + "比例%"; dataGridView[iw + 1, jStart].Style.BackColor = colHeaderColor1; } for (int iw = iStart; iw < iStart + p.sedimentParticlesNumber; ++iw) { //填入標籤標題,K個 dataGridView[iw + 1, jStart - 1].Value = iTitle + (iw - iStart + 1).ToString(); dataGridView[iw + 1, jStart - 1].Style.BackColor = (tabIndex == (iw - iStart)) ? tabActiveColor : tabItemColor; } DataGridViewButtonCell b = new DataGridViewButtonCell(); b.Value = "比例套用到全部"; b.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridView[iStart, jStart - 1] = b; type1Btn.Enabled = true; type2Btn.Enabled = false; break; } if (o.check) { type2Rdo.Checked = true; } else { type1Rdo.Checked = true; } }
private void InitializeDataGridView() { RiverSimulationProfile.TwoInOne o = _data as RiverSimulationProfile.TwoInOne; switch (o.type) { case RiverSimulationProfile.TwoInOne.Type.UseValue: singleValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.UseArray: tableValueRdo.Checked = true; break; case RiverSimulationProfile.TwoInOne.Type.None: Debug.Assert(false); break; } if (inputFormType == InputFormType.Type1) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, colWidth, rowHeadersWidth, tableName, "", "", false, false, false, false); dataGridView1.Columns[0].Name = "主流方向流量(cms)"; dataGridView1.Columns[1].Name = "側方向流量(cms)"; } else if (inputFormType == InputFormType.Type2) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, colWidth, rowHeadersWidth, "時間 T (sec)", "主流方向流量(cms)", "", true, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, colWidth, rowHeadersWidth, "時間 T (sec)", "側方向流量(cms)", "", true, true, false, false); for (int i = 0; i < p.boundaryTime.Length; ++i) { dataGridView1.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView2.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); } dataGridView1.Columns[0].Name = "主流方向流量(cms)"; dataGridView2.Columns[0].Name = "側方向流量(cms)"; } else if (inputFormType == InputFormType.Type3) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, 72, 140, "", "", "主流方向流量(cms)", false, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, 72, 140, "", "", "側方向流量(cms)", false, true, false, false); for (int i = 0; i < colCount; ++i) { int start = inputData.sideFlowPoints.OrderBy(p => p.X).ToArray()[0].X; dataGridView1.Columns[i].Name = (i + start + 1).ToString(); dataGridView2.Columns[i].Name = (i + start + 1).ToString(); } } else if (inputFormType == InputFormType.Type4) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, 72, 140, "時間 T (sec)", "", "", false, false, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, 72, 140, "時間 T (sec)", "", "", false, false, false, false); for (int i = 0; i < p.boundaryTime.Length; ++i) { dataGridView1.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView2.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); } for (int i = 0; i < colCount; ++i) { int start = inputData.sideFlowPoints.OrderBy(p => p.X).ToArray()[0].X; dataGridView1.Columns[i].Name = (i + start + 1).ToString(); dataGridView2.Columns[i].Name = (i + start + 1).ToString(); } } else if (inputFormType == InputFormType.Type5) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, colWidth, rowHeadersWidth, tableName, "", "", true, true, false, false); dataGridView1.Columns[0].Name = "主流方向流量(cms)"; dataGridView1.Columns[1].Name = "側方向流量(cms)"; dataGridView1.Columns[2].Name = "水位(m)"; } else if (inputFormType == InputFormType.Type7) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, 72, 140, "", "", "主流方向流量(cms)", false, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, 72, 140, "", "", "側方向流量(cms)", false, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView3, colCount, rowCount, 72, 140, "", "", "水位(m)", false, true, false, false); for (int i = 0; i < colCount; ++i) { int start = inputData.sideFlowPoints.OrderBy(p => p.X).ToArray()[0].X; dataGridView1.Columns[i].Name = (i + start + 1).ToString(); dataGridView2.Columns[i].Name = (i + start + 1).ToString(); dataGridView3.Columns[i].Name = (i + start + 1).ToString(); } } else if (inputFormType == InputFormType.Type6) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, colWidth, rowHeadersWidth, "時間 T (sec)", "主流方向流量(cms)", "", true, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, colWidth, rowHeadersWidth, "時間 T (sec)", "側方向流量(cms)", "", true, true, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView3, colCount, rowCount, colWidth, rowHeadersWidth, "時間 T (sec)", "水位(m)", "", true, true, false, false); for (int i = 0; i < p.boundaryTime.Length; ++i) { dataGridView1.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView2.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView3.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); } dataGridView1.Columns[0].Name = "主流方向流量(cms)"; dataGridView2.Columns[0].Name = "側方向流量(cms)"; dataGridView3.Columns[0].Name = "水位(m)"; } else if (inputFormType == InputFormType.Type8) { DataGridViewUtility.InitializeDataGridView(dataGridView1, colCount, rowCount, 72, 140, "時間 T (sec)", "", "", false, false, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView2, colCount, rowCount, 72, 140, "時間 T (sec)", "", "", false, false, false, false); DataGridViewUtility.InitializeDataGridView(dataGridView3, colCount, rowCount, 72, 140, "時間 T (sec)", "", "", false, false, false, false); for (int i = 0; i < p.boundaryTime.Length; ++i) { dataGridView1.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView2.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); dataGridView3.Rows[i].HeaderCell.Value = p.boundaryTime[i].ToString(); } for (int i = 0; i < colCount; ++i) { int start = inputData.sideFlowPoints.OrderBy(p => p.X).ToArray()[0].X; dataGridView1.Columns[i].Name = (i + start + 1).ToString(); dataGridView2.Columns[i].Name = (i + start + 1).ToString(); dataGridView3.Columns[i].Name = (i + start + 1).ToString(); } } foreach (DataGridViewColumn column in dataGridView1.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } foreach (DataGridViewColumn column in dataGridView2.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } foreach (DataGridViewColumn column in dataGridView3.Columns) { column.SortMode = DataGridViewColumnSortMode.NotSortable; } FillDataGridView(); }