Загрузка данных


using System;
using System.Windows.Forms;

namespace KAy
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            dataGridView1.CellValueChanged +=
                dataGridView1_CellValueChanged;

            dataGridView1.CurrentCellDirtyStateChanged +=
                dataGridView1_CurrentCellDirtyStateChanged;
        }

        // СОЗДАТЬ
        private void button1_Click(
            object sender,
            EventArgs e)
        {
            int n = (int)numericUpDown1.Value;

            dataGridView1.Columns.Clear();
            dataGridView1.Rows.Clear();

            dataGridView1.ColumnCount = n;
            dataGridView1.RowCount = n;

            for (int i = 0; i < n; i++)
            {
                dataGridView1.Columns[i].HeaderText =
                    (i + 1).ToString();

                dataGridView1.Columns[i].Width = 40;

                dataGridView1.Rows[i].HeaderCell.Value =
                    (i + 1).ToString();

                for (int j = 0; j < n; j++)
                {
                    dataGridView1[j, i].Value = 0;
                }
            }

            listBox1.Items.Clear();
        }

        // ОЧИСТИТЬ
        private void button2_Click(
            object sender,
            EventArgs e)
        {
            dataGridView1.Columns.Clear();
            dataGridView1.Rows.Clear();

            listBox1.Items.Clear();
        }

        // АВТО при вводе
        private void dataGridView1_CurrentCellDirtyStateChanged(
            object sender,
            EventArgs e)
        {
            if (dataGridView1.IsCurrentCellDirty)
            {
                dataGridView1.CommitEdit(
                    DataGridViewDataErrorContexts.Commit);
            }
        }

        // АВТО после изменения
        private void dataGridView1_CellValueChanged(
            object sender,
            DataGridViewCellEventArgs e)
        {
            НайтиИзолированные();
        }

        // ОСНОВНАЯ ПРОВЕРКА
        private void НайтиИзолированные()
        {
            listBox1.Items.Clear();

            int n = dataGridView1.RowCount;

            if (n == 0)
            {
                return;
            }

            int count = 0;

            for (int i = 0; i < n; i++)
            {
                bool isolated = true;

                for (int j = 0; j < n; j++)
                {
                    string a =
                        dataGridView1[j, i].Value?.ToString() ?? "0";

                    string b =
                        dataGridView1[i, j].Value?.ToString() ?? "0";

                    if (a == "")
                        a = "0";

                    if (b == "")
                        b = "0";

                    if (a == "1" || b == "1")
                    {
                        isolated = false;
                    }
                }

                if (isolated)
                {
                    listBox1.Items.Add(
                        "Изолированная вершина № " +
                        (i + 1));

                    count++;
                }
            }

            listBox1.Items.Add("----------------");
            listBox1.Items.Add(
                "Количество: " + count);
        }

        private void Form1_Load(
            object sender,
            EventArgs e)
        {
        }

        private void label2_Click(
            object sender,
            EventArgs e)
        {
        }

        private void listBox1_SelectedIndexChanged(
            object sender,
            EventArgs e)
        {
        }

        private void groupBox1_Enter(
            object sender,
            EventArgs e)
        {
        }

        private void groupBox2_Enter(
            object sender,
            EventArgs e)
        {
        }

        private void groupBox3_Enter(
            object sender,
            EventArgs e)
        {
        }

        private void groupBox4_Enter(
            object sender,
            EventArgs e)
        {
        }

        private void numericUpDown1_ValueChanged(
            object sender,
            EventArgs e)
        {
        }

        private void pictureBox1_Click(
            object sender,
            EventArgs e)
        {
        }

        private void menuStrip1_ItemClicked(
            object sender,
            ToolStripItemClickedEventArgs e)
        {
        }

        private void справкаToolStripMenuItem_Click(
            object sender,
            EventArgs e)
        {
            MessageBox.Show(
                "Создать → заполнить 0/1");
        }

        private void помощьToolStripMenuItem_Click(
            object sender,
            EventArgs e)
        {
            MessageBox.Show(
                "Изолированная вершина — вершина без рёбер.");
        }
    }
}