André 的个人资料Talking about Software D...照片日志列表更多 ![]() | 帮助 |
|
4月2日 Evitar expansão da TreeView ao clicar no "+"Evitar expansão da TreeView ao clicar no "+"
Fala galera!
Esses dias eu estava respondendo umas dúvidas no fórum de C# no MSDN e acabei chegando em uma dúvida interessante...
Por algum motivo (explicado no post), o desenvolvedor queria evitar que o nó da TreeView expandisse quando o usuário clicasse no símbolo de "+" (contudo, sem remover o símbolo da TreeView), fazendo com que a expansão / retração fosse somente executada quando o usuário desse um duplo clique no nó...
Aí fui procurar na Internet pra ver se alguém já tinha feito isso... Como não achei nada, fui tentar implementar... E acabei chegando na seguinte solução:
public partial class Form1 : Form
{ private bool _doubleClick = false; public Form1() { InitializeComponent(); } private void treeView1_BeforeExpand(object sender, TreeViewCancelEventArgs e) { if (!_doubleClick.Equals(true)) e.Cancel = true; else _doubleClick = false; } private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { _doubleClick = true; e.Node.Expand(); } } Basicamente, criei um atributo chamado _doubleClick, que sempre estará setado como falso, a não ser que um nó tenha sofrido um duplo clique (tratamento através do evento NoveMouseDoubleClick da TreeView). No evento BeforeExpand da TreeView, a gente verifica se esse atributo está true ou false, e faz o tratamento desejado (cancelando ou não a expansão do nó)... Não sei se tem um jeito melhor de fazer, mas, dessa forma funcionou belezinha... =)
Para referência, o link do post é:
http://social.msdn.microsoft.com/Forums/pt-BR/vscsharppt/thread/990afef6-7d9f-42d1-adbd-2ad36fb76a7f Até a próxima!
André Alves de Lima. |
|
|