controle de caixa de listagem questão ownerdraw (adicionando um controle de edição para o item caixa de listagem)
-
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
Solução
Eu estou usando algum semelhante para ListView. Método é:
-
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 = "";
-
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;
}
-
Em foco perdido na caixa de texto -. Valor de volta set em item selecionado
selectedItem = innerTextBox.Text;