private void numericUpDown1_ValueChanged(Object sender, EventArgs e) //Событие изменения размерности малой решётки { //int k = Convert.ToInt32(numericUpDown1.Value); cardanGrille.Rows.Clear(); cardanGrille.RowCount = Convert.ToInt32(numericUpDown1.Value) * 2; cardanGrille.ColumnCount = Convert.ToInt32(numericUpDown1.Value) * 2; foreach (DataGridViewColumn column in cardanGrille.Columns) { column.Width = 30; } Cardan cardan = new Cardan(this); //Объект класса. Принимает эту форму в конструкторе cardan.DigitsFillGrille(Convert.ToInt32(numericUpDown1.Value)); //Заполнение решётки числами, параллельно генерируется ключ keyBox.Text = cardan.GenerateKey(Convert.ToInt32(numericUpDown1.Value)); //Генерация ключа по выделенным клеткам в решётке }