Der UpDown-Button muss zur Designzeit auf dem Listview vorhanden sein!
// Eigenschaften des UpDownButtons setzen UDBtn.BorderStyle = BorderStyle.None; UDBtn.Visible = false; UDBtn.ValueChanged += new System.EventHandler(UDBtn_ValueChanged); // Ereignis ItemSelectionChanged des ListViews behandeln private void ListView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (e.IsSelected) { this.SetBtn(e.Item); UDBtn.Visible = true; } else { UDBtn.Visible = false; e.Item.SubItems[ListView1.Columns.Count - 1].Text = UDBtn.Value.ToString(); } } // Funktion setzt den Button in die akt. Zeile und jeweils letzte Spalte (ListView1.Columns.Count - 1) des ListViews // Werte für X- und Y-Offset müssen ggf. Angepasst werden private void SetBtn(ListViewItem lvi) { int iLeft = 0; if (lvi != null) { if (lvi.Selected) { // adjust position values here, to fit correctly UDBtn.Top = 38 + lvi.Position.Y - 20; for (int iCol = 0; iCol < ListView1.Columns.Count; iCol++) { iLeft += ListView1.Columns[iCol].Width; } UDBtn.Left = iLeft - 39; UDBtn.Width = ListView1.Columns[ListView1.Columns.Count - 1].Width - 1; UDBtn.Value = decimal.Parse(lvi.SubItems[ListView1.Columns.Count - 1].Text); } } else { UDBtn.Visible = false; } } // Ereignis ValueChanged des Buttons private void UDBtn_ValueChanged(object sender, System.EventArgs e) { ListViewItem lvi = (ListView1.SelectedItems.Count -> 0) ? lvi = ListView1.SelectedItems[0] : null; if (lvi != null) { lvi.SubItems[ListView1.Columns.Count - 1].Text = UDBtn.Value.ToString(); } }