public void initTabPageThreatsNSD2() { // дизайн DataGridView для определения актуальных УБИ mf.dgvActualThreatsNSD.DefaultCellStyle.SelectionBackColor = Color.AliceBlue; mf.dgvThreats.DefaultCellStyle.SelectionForeColor = Color.Black; mf.dgvActualThreatsNSD.Columns.Clear(); mf.dgvActualThreatsNSD.Rows.Clear(); mf.dgvActualThreatsNSD.Columns.Add("ThreatNumber", "№"); mf.dgvActualThreatsNSD.Columns["ThreatNumber"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; mf.dgvActualThreatsNSD.Columns["ThreatNumber"].Width = 40; mf.dgvActualThreatsNSD.Columns.Add("Name", "Название УБИ"); mf.dgvActualThreatsNSD.Columns.Add("Feasibility", "Возможность реализации УБИ"); mf.dgvActualThreatsNSD.Columns["Feasibility"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; mf.dgvActualThreatsNSD.Columns["Feasibility"].Width = 115; mf.dgvActualThreatsNSD.Columns.Add("DamageDegree", "Степень ущерба от реализации УБИ"); mf.dgvActualThreatsNSD.Columns["DamageDegree"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; mf.dgvActualThreatsNSD.Columns["DamageDegree"].Width = 115; mf.dgvActualThreatsNSD.Columns.Add("IsActual", "Актуальность"); mf.dgvActualThreatsNSD.Columns["IsActual"].AutoSizeMode = DataGridViewAutoSizeColumnMode.None; mf.dgvActualThreatsNSD.Columns["IsActual"].Width = 95; int i = 0; foreach (Threat t in listFilteredThreats) { mf.dgvActualThreatsNSD.Rows.Add(); mf.dgvActualThreatsNSD.Rows[i].Cells[mf.dgvActualThreatsNSD.Columns["ThreatNumber"].Index].Value = t.ThreatNumber; mf.dgvActualThreatsNSD.Rows[i].Cells[mf.dgvActualThreatsNSD.Columns["Name"].Index].Value = t.Name; i++; } calcFeasibility(); damageDegreeInput = new Dictionary <int, int[, , ]>(); foreach (DataGridViewRow dgvRow in mf.dgvActualThreatsNSD.Rows) { damageDegreeInput.Add((int)dgvRow.Cells[mf.dgvActualThreatsNSD.Columns["ThreatNumber"].Index].Value, new int[IS.listOfInfoTypes.Count, 3, 7]); } DDControl = new DamageDegreeControl(IS.listOfInfoTypes, listFilteredThreats, damageDegreeInput, mf); DDControl.Location = new System.Drawing.Point(mf.tpThreatsNSD2.Width - DDControl.Width, 0); DDControl.Anchor = (AnchorStyles.Top | AnchorStyles.Right); mf.tpThreatsNSD2.Controls.Add(DDControl); mf.tcThreatsNSD.SelectedTab = mf.tpThreatsNSD2; }
private void btnGotoDamage_Click(object sender, EventArgs e) { // выбрать все критерии фильтра УБИ for (int i = 0; i < mf.clbThreatFilter.Items.Count; i++) { mf.clbThreatFilter.SetItemChecked(i, true); } filterThreatList(); if (mf.dgvThreats.Rows.Count == 0) { MessageBox.Show("Введите исходные данные для получения списка УБИ", "Список УБИ пуст", MessageBoxButtons.OK); checkInputData(); return; } if (IS.listOfInfoTypes.Count == 0) { if (MessageBox.Show("Для определения степеней ущерба, требуется выбрать виды информации. Перейти к выбору?", "Недостаточно исходных данных", MessageBoxButtons.YesNo) == DialogResult.Yes) { mf.treeView.SelectedNode = mf.returnTreeNode("tnOptions"); } return; } if (!mf.tcThreatsNSD.TabPages.Contains(mf.tpThreatsNSD2)) { mf.tcThreatsNSD.TabPages.Add(mf.tpThreatsNSD2); initTabPageThreatsNSD2(); } else if (MessageBox.Show("Запустить инициализацию формы определения степеней ущерба заново?", "Требуется подтверждение!", MessageBoxButtons.YesNo) == DialogResult.Yes) { mf.tpThreatsNSD2.Controls.Remove(DDControl); DDControl = null; damageDegreeInput = null; initTabPageThreatsNSD2(); } }