controle de caixa de listagem questão ownerdraw (adicionando um controle de edição para o item caixa de listagem)

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

  •  10-07-2019
  •  | 
  •  

Pergunta

Eu estou usando proprietário desenhar estilo variável para uma caixa de listagem (winforms 2.0) quando um usuário seleciona um itens quero chamar um controle de edição em que a célula É que factível não um drop-down, mas um controle de edição real que aparece na célula ou item por assim dizer como graças

Foi útil?

Solução

Eu estou usando algum semelhante para ListView. Método é:

  1. Criar TextBox, adicionar variedade Controls, e esconder um.

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

    innerTextBox.Location = new Point (0, 0);

    this.Controls.AddRange (novo Controlo [] {this.innerTextBox});

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

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

    innerTextBox.Hide ();

    innerTextBox.Text = "";

  2. método próprio Em DoubleClick evento ligamento onde encontrar item selecionado e obter o valor de TextBox

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

    vazio EditableDoubleClick (object sender, System.EventArgs e) privada {

    = selectedItemText selectedItem.ToString ();

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

    innerTextBox.Location = new Point (subItemRect.left, subItemRect.top);

    innerTextBox.Show ();

    innerTextBox.Text = selectedItemText;

    }

  3. Em foco perdido na caixa de texto -. Valor de volta set em item selecionado

    selectedItem = innerTextBox.Text;

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top