Cancelando mudança de página em um "TabControl"

Olá, um micropost para mostrar como você pode cancelar a mudança de página em um controle TabControl do Visual Studio.



Imagine uma situação em que o seu usuário escolheu mudar de página, mas, por algum motivo você quer abortar esta mudança mantendo o foco na página atual.

Geralmente, tratamos o evento "OnSelectedIndexChanged" do componente "TabControl". Mas, neste caso, não é possível abortar a mudança de página.

Para isso poder ser feito, escreva código no evento "Validating" mas do controle "TabPage". Se quise cancelar a mudança de página, faça um código como o abaixo:


private void tabPage1_Validating(object sender, CancelEventArgs e)
{
   if (MessageBox.Show("Mudar de página mesmo?", "Atenção", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes)
   {
          // cancela a mudança de página
          e.Cancel = true;
   }
}

o código "e.Cancel = true" vai manter o foco na página atual.