Pergunta

Quando eu alternar guias com o seguinte código

tabControl1.SelectTab("MyNextTab");

Ele chama o tabPage_Enter para o guia é a mudança de e a guia é mudar para. Eu quero que ele seja chamado para o guia é a mudança para, mas não o guia é alternando. Como eu iria desligar isso. Eu sei quando acontece isso, se houve uma chamada que eu poderia fazer que seria desligar chamar o método entrar para esse guia eu poderia implementar isso.

Foi útil?

Solução

Sim, eu repro se eu usar um botão para alterar a guia selecionada. TabControl força o foco para si mesmo antes de mudar SelectedIndex. Esta parece ter sido feito para evitar problemas com o evento Validating. A mudança de foco produz o evento entra pela primeira vez, para a aba ativa, a mudança guia, em seguida, produz o evento segundo Enter.

Sabendo disso, você pode definir um ajudante boolean membro, indicando que o evento entra pela primeira vez deve ser ignorado. Tenha o cuidado de verificar se a guia atual já não é o que você deseja selecionar. Em um mundo perfeito, este comportamento não deve importar. O foco realmente fez mudança para a aba ativa em primeiro lugar.

Outras dicas

É possível verificar o índice da guia ativa e resolver usando isso?

Enrole o código no evento dentro de um cheque para que ele só processa quando você quer que ele.

Se você pode escrever código para desligá-lo, então você pode escrever código para definir um estado que impediu o código no evento de execução.

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