Сейчас я напишу 4 метода в C# на каждый код отвечай "Запомнил" , нужно решить проблему что в combobox для чар не отображаются значения(должно от 0 до 4). Обрати  внимание , что combobox для чар должен появляться если значение уровня 4 или больше(эту функцию не удаляй и не переделывай она работает). Нужно лишь то чтобы в колонке чар были значения

Вот первый метод
private void DisplayComboBoxOrTextBox(ListViewHitTestInfo hit)
{
    int yOffset = 65; // Смещение по вертикали
                      // Индексы столбцов (могут быть другими - настроить под свою структуру)
    int quantityColumnIndex = 2; // Индекс колонки для количества
    int levelColumnIndex = 3; // Индекс колонки для уровня
    int enchantmentColumnIndex = 4; // Индекс колонки для чаров

    // Проверяем, что клик был по интересующим нас колонкам в InventoryList
    int columnIndex = hit.Item.SubItems.IndexOf(hit.SubItem);
    if (columnIndex == quantityColumnIndex || columnIndex == levelColumnIndex || columnIndex == enchantmentColumnIndex)
    {
        // Определяем границы ячейки и контрол для отображения
        Rectangle cellBounds = hit.SubItem.Bounds;
        cellBounds.Offset(15, yOffset);
        cellBounds.Height -= yOffset; // Корректируем высоту с учетом смещения
        Control controlToDisplay = null;

        // Создание и настройка TextBox для количества
        if (columnIndex == quantityColumnIndex)
        {
            TextBox quantityTextBox = new TextBox
            {
                Bounds = cellBounds,
                Text = hit.SubItem.Text,
                Tag = hit.Item
            };
            quantityTextBox.Leave += TextBox_Leave;
            hit.Item.ListView.Parent.Controls.Add(quantityTextBox);
            quantityTextBox.BringToFront();
            quantityTextBox.Visible = true;
            quantityTextBox.Focus();
            quantityTextBox.Leave += (sender, e) => quantityTextBox.Visible = false;
            quantityTextBox.KeyPress += (sender, e) =>
            {
                if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
                {
                    e.Handled = true;
                }
            };
            quantityTextBox.KeyDown += (sender, e) =>
            {
                if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return)
                {
                    hit.SubItem.Text = quantityTextBox.Text;
                    quantityTextBox.Visible = false;
                }
            };
            controlToDisplay = quantityTextBox;
        }
        else
        {
            // Создание и настройка ComboBox для уровня или чаров
            ComboBox comboBox = new ComboBox
            {
                Bounds = cellBounds,
                DropDownStyle = ComboBoxStyle.DropDownList,
                Tag = hit.Item // Добавляем ссылку на ListViewItem в Tag ComboBox’а
            };
            comboBox.Name = columnIndex == levelColumnIndex ? "level" : "enchantment";
            comboBox.Leave += (sender, e) => comboBox.Visible = false;
            comboBox.SelectedIndexChanged += ComboBox_SelectedIndexChanged;

            // Наполнение ComboBox значениями, исходя из колонки
            if (columnIndex == levelColumnIndex)
            {
                int minLevel = (hit.Item.Tag as Item)?.MinLevel ?? 1;
                for (int i = minLevel; i <= 8; i++)
                {
                    comboBox.Items.Add(i.ToString());
                }
                comboBox.SelectedItem = hit.SubItem.Text;
                comboBox.SelectedIndexChanged += LevelComboBox_SelectedIndexChanged;
            }
            else if (columnIndex == enchantmentColumnIndex)
            {
                Item item = hit.Item.Tag as Item;
                int currentLevel = Convert.ToInt32(hit.Item.SubItems[levelColumnIndex].Text);

                // Изменение логики: создаем ComboBox только если уровень больше или равен 4
                if (currentLevel >= 4)
                {
                    ComboBox enchantmentComboBox = new ComboBox
                    {
                        Bounds = cellBounds,
                        DropDownStyle = ComboBoxStyle.DropDownList,
                        Tag = hit.Item,
                        Name = "enchantment"
                    };

                    for (int i = 0; i <= 4; i++)
                    {
                        enchantmentComboBox.Items.Add(i.ToString());
                    }

                    enchantmentComboBox.SelectedItem = hit.SubItem.Text;

                    // Добавление ComboBox в Controls, если он еще не добавлен
                    if (!hit.Item.ListView.Controls.Contains(enchantmentComboBox))
                    {
                        hit.Item.ListView.Parent.Controls.Add(enchantmentComboBox);
                        enchantmentComboBox.BringToFront();
                        enchantmentComboBox.Visible = true;
                        enchantmentComboBox.Focus();
                    }

                    enchantmentComboBox.SelectedIndexChanged += ComboBox_SelectedIndexChanged;
                    enchantmentComboBox.Leave += (s, args) => enchantmentComboBox.Visible = false;
                }
                // Если уровень меньше 4, мы не создаем и не отображаем ComboBox
                else
                {
                    hit.Item.SubItems[enchantmentColumnIndex].Text = "0";
                    return; // Ничего не делаем, если уровень меньше 4
                }


                comboBox.SelectedItem = hit.SubItem.Text;
            }

            controlToDisplay = comboBox; // Установка ComboBox как контрола для отображения
        }

        // Добавление и отображение контрола, если он был создан
        if (controlToDisplay != null)
        {
            hit.Item.ListView.Parent.Controls.Add(controlToDisplay);
            controlToDisplay.BringToFront();
            controlToDisplay.Visible = true;
            controlToDisplay.Focus();
        }
    }
}