Boa noite
Sei que a categoria é C e C++, mas preciso de ajuda em C#,
segue o código da minha calculadora, estou com as seguintes dúvidas:
- Preciso ativar os números e o enter do teclado, sei que preciso colocar esse comando pra todos os botões:
"case Keys.NumPadnumero:
btnNumero.PerformClick();
break;"
Mas em qual parte eu add esse código? - A virgula só pode aparecer uma vez, mesmo clicando várias
- Não pode dividir por zero, aparecendo a seguinte mensagem se tentado “Impossível divisão por zero”
Se alguém puder me ajudar.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WFA_Calculadora
{
public partial class frmCalculadora : Form
{
public frmCalculadora()
{
InitializeComponent();
}
Int32 w;
public string n1 = "", n2 = "";
class Calc
{
public string Op = "";
public string Igual(string strN1, string strN2)
{
double n1 = Convert.ToDouble(strN1);
double n2 = Convert.ToDouble(strN2);
double resul = 0;
switch (Op)
{
case "/":
resul = n1 / n2;
break;
case "*":
resul = n1 * n2;
break;
case "-":
resul = n1 - n2;
break;
case "+":
resul = n1 + n2;
break;
case "mod":
resul = n1 % n2;
break;
case "^":
resul = Math.Pow(n1, n2);
break;
}
return Convert.ToString(resul);
}
}
Calc c = new Calc();
private void btn7_Click(object sender, EventArgs e)
{
txtVisor.Text += "7";
label1.Focus();
}
private void btn8_Click(object sender, EventArgs e)
{
txtVisor.Text += "8";
label1.Focus();
}
private void btn9_Click(object sender, EventArgs e)
{
txtVisor.Text += "9";
label1.Focus();
}
private void btn4_Click(object sender, EventArgs e)
{
txtVisor.Text += "4";
label1.Focus();
}
private void btn5_Click(object sender, EventArgs e)
{
txtVisor.Text += "5";
label1.Focus();
}
private void btn6_Click(object sender, EventArgs e)
{
txtVisor.Text += "6";
label1.Focus();
}
private void btn1_Click(object sender, EventArgs e)
{
txtVisor.Text += "1";
label1.Focus();
}
private void btn2_Click(object sender, EventArgs e)
{
txtVisor.Text += "2";
label1.Focus();
}
private void btn3_Click(object sender, EventArgs e)
{
txtVisor.Text += "3";
label1.Focus();
}
private void btn0_Click(object sender, EventArgs e)
{
txtVisor.Text += "0";
label1.Focus();
}
private void btnSoma_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "+";
txtVisor.Clear();
label1.Focus();
}
private void btnMod_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "mod";
txtVisor.Clear();
label1.Focus();
}
private void btnIgual_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
n2 = txtVisor.Text;
txtVisor.Text = c.Igual(n1, n2);
label1.Focus();
}
catch
{
return;
}
}
private void btnDiv_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "/";
txtVisor.Clear();
label1.Focus();
}
private void btnMult_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "*";
txtVisor.Clear();
label1.Focus();
}
private void btnSub_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "-";
txtVisor.Clear();
label1.Focus();
}
private void btnPot_Click(object sender, EventArgs e)
{
n1 = txtVisor.Text;
c.Op = "^";
txtVisor.Clear();
label1.Focus();
}
private void btnRaiz_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
double r = Convert.ToDouble(txtVisor.Text);
txtVisor.Text = Convert.ToString(Math.Sqrt(r));
}
catch
{
return;
}
}
private void btnPorc_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
double p1 = Convert.ToDouble(n1);
double p2 = Convert.ToDouble(txtVisor.Text);
txtVisor.Text = Convert.ToString(p1 * p2 / 100);
}
catch
{
return;
}
}
private void btnMR_Click(object sender, EventArgs e)
{
txtVisor.Text = Convert.ToString(w);
label1.Focus();
}
private void btnMS_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
w = Convert.ToInt32(txtVisor.Text);
txtVisor.Clear();
}
catch
{
return;
}
}
private void btnMSoma_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
Int32 wsoma = Convert.ToInt32(txtVisor.Text);
w = w + wsoma;
}
catch
{
return;
}
}
private void btnMSub_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
Int32 wsub = Convert.ToInt32(txtVisor.Text);
w = w - wsub;
}
catch
{
return;
}
}
private void btnC_Click(object sender, EventArgs e)
{
txtVisor.Clear();
n1 = "";
c.Op = "";
label1.Focus();
}
private void btnMC_Click(object sender, EventArgs e)
{
w = 0;
label1.Focus();
}
private void btnCE_Click(object sender, EventArgs e)
{
txtVisor.Clear();
label1.Focus();
}
private void btnFat_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
double n = Convert.ToDouble(txtVisor.Text);
double f = n;
for (f = n - 1; f >= 1; f--)
{
n = f * n;
}
txtVisor.Text = Convert.ToString(n);
}
catch
{
return;
}
}
private void frmCalculadora_Load(object sender, EventArgs e)
{
}
private void btnLog_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
double resul = double.Parse(txtVisor.Text);
resul = Math.Log10(resul);
txtVisor.Text = resul.ToString();
}
catch
{
return;
}
}
private void btnBack_Click(object sender, EventArgs e)
{
int x = txtVisor.Text.Length - 1;
if (x >= 0)
{
txtVisor.Text = txtVisor.Text.Substring(0, x);
}
}
private void btnMaisMenos_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
double r = Convert.ToDouble(txtVisor.Text);
txtVisor.Text = Convert.ToString(r * -1);
}
catch
{
return;
}
}
private void btnVirgula_Click(object sender, EventArgs e)
{
txtVisor.Text += ",";
}
private void btnPi_Click(object sender, EventArgs e)
{
label1.Focus();
try
{
txtVisor.Text += Math.PI;
}
catch
{
return;
}
}
private void button4_Click(object sender, EventArgs e)
{
double sin = Convert.ToDouble(txtVisor.Text);
sin = Math.Sin(sin);
txtVisor.Text = sin.ToString();
}
}
}