Beispiel #1
0
        public void InitializeDataGridView(int columns, int rows)
        {
            dataGridView1.Width  = 1880;
            dataGridView1.Height = 850;
            dataGridView1.ColumnHeadersVisible = true;
            dataGridView1.RowHeadersVisible    = true;
            dataGridView1.ColumnCount          = columns;

            for (int i = 0; i < columns; i++)
            {
                string columnName = Converter26Sys.To26Sys(i);
                dataGridView1.Columns[i].Name     = columnName;
                dataGridView1.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            }

            for (int i = 0; i < rows; i++)
            {
                dataGridView1.Rows.Add("");
                dataGridView1.Rows[i].HeaderCell.Value = i.ToString();
            }
            dataGridView1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
            dataGridView1.AllowUserToAddRows = false;

            Grid.setGrid(columns, rows);
        }
Beispiel #2
0
        } = new List <Cell>();                                                 // cells that are in expr

        public Cell(int col, int row)
        {
            this.Row        = row;
            this.Column     = col;
            this.Sys26Name  = Converter26Sys.To26Sys(col) + row.ToString();
            this.Value      = "0";
            this.Expression = "";
        }
Beispiel #3
0
        private void buttonAddColumn_Click(object sender, EventArgs e)
        {
            DataGridViewTextBoxColumn column = new DataGridViewTextBoxColumn();

            int i = dataGridView1.Columns.Add(column);

            dataGridView1.Columns[i].HeaderCell.Value = Converter26Sys.To26Sys(i);
            Grid.AddColumn();
        }
Beispiel #4
0
        public void SetPointersAndReferences(string expression)
        {
            Regex           regex      = new Regex("[A-Z]+[0-9]");
            MatchCollection collection = regex.Matches(this.Expression);
            List <Cell>     temp       = new List <Cell>();

            foreach (Cell cell in this.ReferencesFromThis)
            {
                if (cell.PointersToThis.Contains(this))
                {
                    cell.PointersToThis.Remove(this);
                }
            }

            this.ReferencesFromThis.Clear();

            foreach (Match match in collection)
            {
                if (Grid.dictionary.ContainsKey(match.Value))
                {
                    Index i = Converter26Sys.From26Sys(match.Value);
                    this.ReferencesFromThis.Add(Grid.table[i.column][i.row]);
                    Grid.table[i.column][i.row].PointersToThis.Add(this);
                    temp.Add(Grid.table[i.column][i.row]);
                }
                else
                {
                    this.ReferencesFromThis.Clear();
                    foreach (Cell cell in temp)
                    {
                        if (cell.PointersToThis.Contains(this))
                        {
                            cell.PointersToThis.Remove(this);
                        }
                    }
                    throw new NonExistentCellException();
                }
            }
        }
Beispiel #5
0
        public void Open(DataGridView dataGridView)
        {
            using (StreamReader sr = new StreamReader(_fileName))
            {
                int gridColumnsCount = int.Parse(sr.ReadLine());
                int gridRowsCount    = int.Parse(sr.ReadLine());

                Grid.setGrid(gridColumnsCount, gridRowsCount);

                dataGridView.ColumnCount = gridColumnsCount;
                for (int i = 0; i < gridColumnsCount; i++)
                {
                    string columnName = Converter26Sys.To26Sys(i);
                    dataGridView.Columns[i].Name     = columnName;
                    dataGridView.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
                }

                for (int i = 0; i < gridRowsCount; i++)
                {
                    dataGridView.Rows.Add("");
                    dataGridView.Rows[i].HeaderCell.Value = i.ToString();
                }

                for (int i = 0; i < gridColumnsCount; ++i)
                {
                    for (int j = 0; j < gridRowsCount; ++j)
                    {
                        string sys26Name  = sr.ReadLine();
                        string expression = sr.ReadLine();
                        string value      = sr.ReadLine();

                        int         pointersCount = int.Parse(sr.ReadLine());
                        List <Cell> pointers      = new List <Cell>();
                        for (int k = 0; k < pointersCount; ++k)
                        {
                            string pointer        = sr.ReadLine();
                            Index  indexOfPointer = Converter26Sys.From26Sys(pointer);
                            pointers.Add(Grid.table[indexOfPointer.column][indexOfPointer.row]);
                        }

                        int         referencesCount = int.Parse(sr.ReadLine());
                        List <Cell> references      = new List <Cell>();
                        for (int k = 0; k < referencesCount; ++k)
                        {
                            string reference        = sr.ReadLine();
                            Index  indexOfReference = Converter26Sys.From26Sys(reference);
                            references.Add(Grid.table[indexOfReference.column][indexOfReference.row]);
                        }

                        Cell cell = new Cell(i, j, expression, value, sys26Name, pointers, references);
                        Grid.table[i][j] = cell;
                        Grid.dictionary[cell.Sys26Name] = cell.Value;

                        if (cell.Value == "0" && cell.Expression == "")
                        {
                            dataGridView[i, j].Value = "";
                        }
                        else
                        {
                            dataGridView[i, j].Value = cell.Value;
                        }
                    }
                }
            }
        }