Evento "SelectedItemChangedByUser" na ComboBox

Problema

No Formulário Dinâmico, quando a opção selecionada em um campo do tipo ComboBox (ou Lookup em modo ComboBox) é alterada através da ação “Popular Campos e Variáveis” dos Procedimentos, o evento SelectedItemChanged é disparado, da mesma maneira como ocorre quando o usuário seleciona manualmente uma nova opção na página.

Este comportamento evita que o programador tenha que chamar os códigos disparados nos eventos em outros locais, pois já é esperado que o evento será disparado passivamente quando o campo for preenchido com um novo valor.

No entanto, em alguns casos, pode ser necessário fazer um tratamento diferente quando o usuário seleciona uma opção manualmente em relação à quando a opção é selecionada programaticamente.

Nestes casos, torna-se difícil gerenciar o disparado dos eventos para alcançar o comportamento desejado.

Solução

A solução proposta para este problema é a criação de um novo tipo de evento para campos do tipo ComboBox (e Lookup em modo ComboBox) chamado SelectedItemChangedByUser.

Enquanto o evento SelectedItemChanged é disparado quando uma opção da ComboBox é alterada em qualquer situação, este novo evento só será disparado quando a opção for alterada através da ação do usuário, diretamente no campo.

2 curtidas

Esse problema ocorre também com o checkbox. Poderia criar o mesmo recurso.

2 curtidas