// Ação quando o botão TrocaSinal é pressionado
 internal void ActionTrocaSinal()
 {
     if (!VerificaSeVazio())
     {
         Txt.Text = (Convert.ToDouble(Txt.Text.Trim().Replace(".", ",")) * (-1)).ToString().Replace(",", ".");
     }
     Pnl.Focus();
 }
 // Limpa todos os campos
 private void LimparCampos()
 {
     _NumeroUm        = 0;
     _NumeroDois      = 0;
     Txt.Text         = string.Empty;
     _Operacao        = string.Empty;
     _PressionouIgual = false;
     Pnl.Focus();
 }
        // Ação qundo o botão . é pressionado
        internal void ActionPonto()
        {
            string antesOperacao  = LimpaAposOperacao(Txt.Text.Trim());
            string depoisOperacao = RemoveOperacaoTxt(Txt.Text.Trim());

            CondicaoAplicaZero(antesOperacao, depoisOperacao);

            Pnl.Focus();
        }
 // Insere o valor
 internal void InserirValor(string valor)
 {
     if (VerificaSeIgualPressionado())
     {
         _PressionouIgual = false;
     }
     Txt.Text += valor;
     Pnl.Focus();
 }
 // Ação quando o botão Raiz é pressionado
 internal void ActionRaiz()
 {
     if (!VerificaSeVazio())
     {
         double ValorBase = Convert.ToDouble(Txt.Text.Trim().Replace(".", "."));
         double Resultado = Math.Sqrt(ValorBase);
         Txt.Text         = Resultado.ToString().Replace(",", ".");
         _PressionouIgual = true;
     }
     Pnl.Focus();
 }
 // Ação quando o botão ElevadoQuadrado é pressionado
 internal void ActionElevaQuadrado()
 {
     if (!VerificaSeVazio())
     {
         double ValorBase = Convert.ToDouble(Txt.Text.Trim().Replace(".", "."));
         double Resultado = CalcularPotencia(ValorBase, 2);
         Txt.Text         = Resultado.ToString().Replace(",", ".");
         _PressionouIgual = true;
     }
     Pnl.Focus();
 }
        // Ação quando o botão LimpaUltimo é pressionado
        internal void ActionRemoveUltimo()
        {
            string Texto   = Txt.Text.Trim();
            int    tamanho = Texto.Trim().Length;

            LimparTxtResultado();
            for (int i = 0; i < tamanho - 1; i++)
            {
                Txt.Text += Texto[i];
            }
            Pnl.Focus();
        }
 // Ação quando o botão <-- é pressionado
 internal void ActionLimpaUltimoValor()
 {
     if (_Operacao.Equals(string.Empty) || VerificaSeIgualPressionado())
     {
         LimparCampos();
     }
     else
     {
         Txt.Text = LimpaAposOperacao(Txt.Text);
     }
     Pnl.Focus();
 }
 // Ação quando o botão 1x é pressionado
 internal void Action1x()
 {
     if (!VerificaSeVazio())
     {
         double ValorBase = Convert.ToDouble(Txt.Text.Trim().Replace(".", "."));
         if (ValorBase == 0)
         {
             MessageBox.Show("Erro divisão por zero", "Calculadora", MessageBoxButtons.OK, MessageBoxIcon.Error);
             return;
         }
         double Resultado = 1 / ValorBase;
         Txt.Text         = Resultado.ToString().Replace(",", ".");
         _PressionouIgual = true;
     }
     Pnl.Focus();
 }
        // Adiciona a operação
        internal void AdicionarOperacao(string operacao)
        {
            if (!VerificaSeVazio())
            {
                if (VerificaSeTemPonto())
                {
                    _NumeroUm = Convert.ToDouble(Txt.Text.Trim().Replace(".", ","));
                }
                else
                {
                    _NumeroUm = Convert.ToDouble(Txt.Text.Trim());
                }

                _Operacao = operacao;
                Txt.Text += _Operacao;
            }
            else
            {
                MessageBox.Show("Precisar ser inserido algum valor", "Calculadora", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            Pnl.Focus();
        }
 // Ação quando o botão igual é pressionado
 internal void ActionIgual()
 {
     if (VerificaSeIgualPressionado())
     {
         LimparTxtResultado();
         _PressionouIgual = false;
         return;
     }
     if (!VerificaSeVazio())
     {
         if (VerificaSeTemPonto())
         {
             _NumeroDois = Convert.ToDouble(RemoveOperacaoTxt(Txt.Text.Trim().ToString().Replace(".", ",")));
         }
         else
         {
             _NumeroDois = Convert.ToDouble(RemoveOperacaoTxt(Txt.Text.Trim().ToString().Replace(".", ",")));
         }
         CalcularResultado(_Operacao);
         _PressionouIgual = true;
     }
     Pnl.Focus();
 }
        // Calcula o Resultado
        internal void CalcularResultado(string operacao)
        {
            switch (operacao)
            {
            case "/":
                if (_NumeroDois == 0)
                {
                    MessageBox.Show("Não é permitido divisão por 0", "Calculadora", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    break;
                }
                else
                {
                    _Resultado = _NumeroUm / _NumeroDois;
                }
                break;

            case "*":
                _Resultado = _NumeroUm * _NumeroDois;
                break;

            case "-":
                _Resultado = _NumeroUm - _NumeroDois;
                break;

            case "+":
                _Resultado = _NumeroUm + _NumeroDois;
                break;

            case "^":
                _Resultado = CalcularPotencia(_NumeroUm, _NumeroDois);
                break;
            }
            LimparTxtResultado();
            Txt.Text = _Resultado.ToString().Replace(",", ".");
            Pnl.Focus();
        }
 // Limpa o TxtResultado
 private void LimparTxtResultado()
 {
     Txt.Clear();
     Pnl.Focus();
 }