private string ParseC(string formyla, string nameCell) { var Root = new List <string>(); Root.Add(nameCell); for (int i = 0; i < formyla.Length;) { if (Cell(formyla, i, out string cell)) { if (Root.Contains(cell)) { throw new Exception("Circle"); } Root.Add(cell); formyla = formyla.Remove(i, cell.Length); Inicialize.Search(cell, out int index, out int jndex); string exp = Inicialize.cells[index, jndex].Expression; exp = exp.Replace(" ", ""); if (exp[0] == '=') { exp = exp.Remove(0, 1); } exp = "(" + exp + ")"; formyla = formyla.Insert(i, exp); } else { i++; } } return(formyla); }
private void AddRowToolStripMenuItem_Click(object sender, EventArgs e) { dataGridView1.Rows.Add(); Inicialize.AddRow(dataGridView1.SelectedCells[0].RowIndex); Inicialize.UpdateDependencesRowAdded(dataGridView1.SelectedCells[0].RowIndex); FullUpdateGrid(); ShowExpression.Checked = false; }
private void AddColumn_Click(object sender, EventArgs e) { dataGridView1.Columns.Add(To26Sys.TO(Info.ColumnCount), To26Sys.TO(Info.ColumnCount)); Inicialize.AddColumn(dataGridView1.SelectedCells[0].ColumnIndex); Inicialize.UpdateDependencesColumnAdded(dataGridView1.SelectedCells[0].ColumnIndex); FullUpdateGrid(); ShowExpression.Checked = false; }
private void UpdateCell(string name) { Inicialize.Search(name, out int i, out int j); try { //------------------------- var parser = new Parser(); for (int index = 0; index < Inicialize.cells[i, j].Expression.Length; index++) { if (parser.Cell(Inicialize.cells[i, j].Expression, index, out string cell)) { if (cell == name) { throw new Exception("Call this cell"); } } } //------------------------- Inicialize.cells[i, j].Value = Inicialize.cells[i, j].Parse(Inicialize.cells[i, j].Name); var a = new DataGridViewCellStyle(); dataGridView1[i, j].Style = a; if (!ShowExpression.Checked) { dataGridView1[i, j].Value = Inicialize.cells[i, j].Value; } else { dataGridView1[i, j].Value = Inicialize.cells[i, j].Expression; } } catch (Exception ex) { var a = new DataGridViewCellStyle(); a.BackColor = Color.Red; dataGridView1[i, j].Style = a; dataGridView1[i, j].Value = ex.Message; } /*finally * { * List<string> root = new List<string>(); * // root.Add(name); * foreach (var item in Inicialize.cells[i, j].depend) * { * try * { * UpdateCellIn(item, root); * } * catch(Exception ex) * { * throw ex; * } * } * }*/ }
private void Form1_Load(object sender, EventArgs e) { var init = new Inicialize(); dataGridView1.ColumnCount = Info.ColumnCount; dataGridView1.RowCount = Info.RowCount; init.New(); foreach (DataGridViewColumn c in dataGridView1.Columns) { c.SortMode = DataGridViewColumnSortMode.NotSortable; } FullUpdateGrid(); }
private void DeleteRow_Click(object sender, EventArgs e) { DialogResult dr = MessageBox.Show("Впевнені?", "Видалити строку", MessageBoxButtons.OKCancel); if (dr == DialogResult.OK) { if (Info.RowCount > 1) { dataGridView1.Rows.RemoveAt(Info.RowCount - 1); Inicialize.DeleteRow(dataGridView1.SelectedCells[0].RowIndex); Inicialize.UpdateDependencesRowDeleted(dataGridView1.SelectedCells[0].RowIndex); FullUpdateGrid(); ShowExpression.Checked = false; } else { MessageBox.Show("Не можна видалити останню строку!", "Обережно!"); } } }