Auswählen von ListView SubItems mittels ComboBox

// auf dem Formular befindet sich ein ListView mit Namen ListView1
public partial class Form1 : Form
{
    // die Combobox mit der Editiert wird
    private ComboBox _cbEdit = new ComboBox();
    
    // Verweise auf das ListViewElement
    private ListViewItem.ListViewSubItem _lvSubItemEdit = null;
    
    public frmMain()
    {
        InitializeComponent();
        
        // ComboBox initialisieren
        _cbEdit.Visible = false;
        // Werte nur anzeigen, kein Editieren zulassen
        _cbEdit.DropDownStyle = ComboBoxStyle.DropDownList;
        // Eventhandler für die Textbox hinzufügen
        _cbEdit.Leave += new EventHandler(_cbEdit_Leave);

        // ein paar Beispielwerte
        _cbEdit.Items.Add("0.5");
        _cbEdit.Items.Add("0.8");
        _cbEdit.Items.Add("0.9");

        // der Form hinzufügen
        this.Controls.Add(_cbEdit);
    }
   
    // Event für das Verlassen der Combobox per Maus
    void _cbEdit_Leave(object sender, EventArgs e)
    {
        if (_lvSubItemEdit != null)  
        {
            if (_cbEdit.SelectedItem != null)
            {
                _lvSubItemEdit.Text = _cbEdit.SelectedItem.ToString();
            }
        }

        _cbEdit.Visible = false; 
    }

    // Event des ListViews
    // zum Merken des zuletzt angeklickten ListViewItems
    // und zum Plazieren der Combobox
    private void ListView1_MouseUp(object sender, MouseEventArgs e)
    {
        ListViewHitTestInfo htInfo = ListView1.HitTest(e.X, e.Y);
        if (htInfo != null)
        {
            if (htInfo.Item != null && htInfo.SubItem != null)
            {
                // wenn Subitem in Spalte 2 (Index == 1) gewählt
                // dann ComboBox anzeigen
                if (htInfo.Item.SubItems.IndexOf(htInfo.SubItem) == 1)
                {
                    _lvSubItemEdit = htInfo.SubItem;

                    _cbEdit.Top = ListView1.Top + _lvSubItemEdit.Bounds.Top + 2;
                    _cbEdit.Left = ListView1.Left + _lvSubItemEdit.Bounds.Left + 2;

                    _cbEdit.Width = _lvSubItemEdit.Bounds.Width;
                    _cbEdit.Height = _lvSubItemEdit.Bounds.Height;

                    _cbEdit.SelectedIndex = _cbEdit.Items.IndexOf(_lvSubItemEdit.Text);

                    _cbEdit.Visible = true;
                    _cbEdit.BringToFront();
                    _cbEdit.Focus();
                }
                else
                {
                    _lvSubItemEdit = null;
                }
            }
        }
    }
}