Pergunta

Estou brincando com o controle TreeView da Microsoft e estou tentando forçar algum tipo de atualização de dados ao editar o rótulo de um nó, semelhante a UpdateData para uma grade.

Basicamente, no meu editor, tenho um botão Salvar e este controle TreeView:o que eu quero é que quando estou editando o rótulo de um nó no TreeView, se eu clicar no botão Salvar, quero poder confirmar o rótulo do nó que estava editando.

Foi útil?

Solução

A edição do rótulo do nó é realizada com uma caixa de texto e quando essa caixa de texto perde o foco a mudança no nome será confirmada como o novo rótulo do nó.Portanto, se o botão 'Salvar' no qual você está clicando ficar em foco, a atualização será feita automaticamente porque a caixa de texto perderá o foco.

Se o botão 'Salvar' não estiver em foco, será necessário manipular um evento de clique para o botão 'Salvar' e solicitar à árvore que encerre qualquer edição de rótulo atual.Se não tiver um método/propriedade você pode chamar para solicitar o término da edição do rótulo, então você tem duas opções.Se a visualização em árvore tiver o foco, coloque o foco em outro lugar.Alternativamente, desligue/ligue novamente a edição de etiquetas...

treeView.LabelEdit = false;
treeView.LabelEdit = true;

Outras dicas

Aceitarei a resposta, mesmo que não esteja realmente documentada:tem ou não tem esse método?Na verdade, você não respondeu a isso, apenas me devolveu a pergunta.

Enquanto isso, encontrei a mesma solução hack-ish ao forçar o foco para algum outro controle (não muito elegante, mas funciona), embora seja um pouco mais difícil para mim, já que uso um TreeView como parte de um UserControl.

Você realmente precisa de um botão Salvar?

você pode ouvir o final da edição do nó - por exemplo, ouvindo a tecla "return" no evento KeyDown do TreeView.se você estiver editando algo (descubra com SelectedNode.IsEditing), então você sabe que tem um commit.Você pode então enviar isso para o seu material de atualização de dados.Se você quiser editar muitos nós diferentes e salvá-los todos no final, será necessário adicionar cada nó editado a algum tipo de coleção e, ao clicar no botão Salvar, iterar por essa coleção.

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