Esempio n. 1
0
        private void FillEnvironmentVariables(DataGridView dgv, EnvironmentSnapshot snapshot)
        {
            int currentRowIndex = (dgv.CurrentRow != null ? dgv.CurrentRow.Index : 0);

            dgv.Rows.Clear();
            if (snapshot.Variables.Count == 0)
            {
                return;
            }
            EnvironmentValueValidator validator = new EnvironmentValueValidator();
            int rowIndex = 0;

            foreach (var variable in snapshot.Variables)
            {
                string   key   = variable.Name;
                string   value = variable.Value;
                string[] row   = { key, value };
                rowIndex = dgv.Rows.Add(row);
                if (!validator.Validate(value))
                {
                    dgv.Rows[rowIndex].Cells[0].Style.ForeColor = Color.Red;
                    dgv.Rows[rowIndex].Cells[1].Style.ForeColor = Color.Red;
                }
            }

            dgv.Sort(dgv.Columns[0], ListSortDirection.Ascending);

            try
            {
                dgv.CurrentCell = dgv[0, currentRowIndex];
                dgv.FirstDisplayedScrollingRowIndex = currentRowIndex;
            }
            catch
            {   // if row was deleted this will set it to first one
                // TODO: Implement this by searching for var name in the grid.
                // Catching Exceptions makes program slow
                dgv.CurrentCell = dgv[0, 0];
                dgv.FirstDisplayedScrollingRowIndex = 0;
            }
            int widthCol0 = dgv.Columns[0].Width;

            dgv.Columns[0].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
            dgv.Columns[0].Width        = widthCol0;
        }