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


using System;
using System.Windows.Forms;

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

            // разрешаем только 0 и 1
            dataGridView1.EditingControlShowing +=
                dataGridView1_EditingControlShowing;
        }

        // СОЗДАТЬ
        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 button4_Click_1(
            object sender,
            EventArgs e)
        {
            НайтиИзолированные();
        }

        // ВВОД ТОЛЬКО 0 И 1
        private void dataGridView1_EditingControlShowing(
            object sender,
            DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control is TextBox tb)
            {
                tb.KeyPress -= OnlyZeroOne;
                tb.KeyPress += OnlyZeroOne;
            }
        }

        private void OnlyZeroOne(
            object sender,
            KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)Keys.Back)
                return;

            if (e.KeyChar != '0' &&
                e.KeyChar != '1')
            {
                e.Handled = true;
            }
        }

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

            int n = dataGridView1.RowCount;

            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 == "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(
                "Изолированная вершина — вершина без рёбер.");
        }
    }
}