pregunta del propietario del control del cuadro de lista (agregar un control de edición al elemento del cuadro de lista)

StackOverflow https://stackoverflow.com/questions/1219736

  •  10-07-2019
  •  | 
  •  

Pregunta

Estoy usando el estilo variable de dibujo del propietario para un cuadro de lista (winforms 2.0) cuando un usuario selecciona un elemento, quiero dibujar un control de edición en esa celda Es eso factible no un menú desplegable, sino un control de edición real que aparece en la celda o elemento como si fuera cómo gracias

¿Fue útil?

Solución

Estoy usando algunos similares para ListView. El método es:

  1. Crear cuadro de texto, agregar a la matriz de controles y ocultar uno.

    innerTextBox.Size = new Size (0, 0);

    innerTextBox.Location = nuevo punto (0, 0);

    this.Controls.AddRange (nuevo Control [] {this.innerTextBox});

    innerTextBox.KeyPress + = new KeyPressEventHandler (this.EditOver);

    innerTextBox.LostFocus + = nuevo EventHandler (this.FocusOver);

    innerTextBox.Hide ();

    innerTextBox.Text = " " ;;

  2. En el evento DoubleClick, enlace método propio donde encuentre el elemento seleccionado y obtenga valor en TextBox

    this.DoubleClick + = new EventHandler (this.EditableDoubleClick);

    private void EditableDoubleClick (remitente de objetos, System.EventArgs e) {

    selectedItemText = selectedItem.ToString ();

    innerTextBox.Size = new Size (subItemRect.right - subItemRect.left, subItemRect.bottom - subItemRect.top);

    innerTextBox.Location = nuevo punto (subItemRect.left, subItemRect.top);

    innerTextBox.Show ();

    innerTextBox.Text = selectedItemText;

    }

  3. Al perder el foco en TextBox: vuelva a establecer el valor en el elemento seleccionado.

    selectedItem = innerTextBox.Text;

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top