Int m, n, p; //размеры матриц

double[,] A, B, C; //сами матрицы

Рассмотрим теперь, как выглядит обработчик события «Click» командной кнопки «Создать DataGridView». Предполагается, что пользователь разумен и, прежде чем нажать эту кнопку, задает размеры матриц в соответствующих текстовых окнах. Напомню, что при перемножении матриц размеры матриц должны быть согласованы – число столбцов первого сомножителя должно совпадать с числом строк второго сомножителя, а размеры результирующей матрицы определяются размерами сомножителей. Поэтому для трех матриц в данном случае достаточно задать не шесть, а три параметра, определяющих размеры.

Обработчик события выполняет три задачи – создает сами матрицы, осуществляет чистку элементов управления DataGridView, удаляя предыдущее состояние, затем добавляет столбцы и строки в эти элементы в полном соответствии с заданными размерами матриц. Вот текст обработчика:

 

Private void button1_Click(object sender, EventArgs e)

{

//создание матриц

m = Convert.ToInt32(textBox1.Text);

n = Convert.ToInt32(textBox2.Text);

p = Convert.ToInt32(textBox3.Text);

A = new double[m, n];

B = new double[n, p];

C = new double[m, p];

//Чистка DGView, если они не пусты

int k =0;

k = dataGridView1.ColumnCount;

if (k != 0)

for (int i = 0; i < k; i++)

dataGridView1.Columns.RemoveAt(0);

dataGridView2.Columns.Clear();

dataGridView3.Columns.Clear();

//Заполнение DGView столбцами

AddColumns(n, dataGridView1);

AddColumns(p, dataGridView2);

AddColumns(p, dataGridView3);

//Заполнение DGView строками

AddRows(m, dataGridView1);

AddRows(n, dataGridView2);

AddRows(m, dataGridView3);

}

Комментарий. Чистка предыдущего состояния элементов DataGridViewсводится к удалению столбцов. Продемонстрированы два возможных способа выполнения этой операции. Для первого элемента показано, как можно работать с коллекцией столбцов. Организуется цикл по числу столбцов коллекции и в цикле выполняется метод RemoveAt, аргументом которого является индекс удаляемого столбца. Поскольку после удаления столбца происходит перенумерация столбцов, то на каждом шаге цикла удаляется первый столбец, индекс которого всегда равен нулю. Удаление столбцов коллекции можно выполнить одним махом, - вызывая метод Clear() коллекции, что и делается для остальных двух элементов DataGridView;

После чистки предыдущего состояния, можно задать новую конфигурацию элемента, добавив в него вначале нужное количество столбцов, а затем и строк. Эти задачи выполняют специально написанные процедуры AddColumns и AddRows. Вот их текст: