所以我要用三种形式制作计算器-带数字的形式,带运算的形式和带结果的形式。我不知道如何在单击数字和单击运算符时连接和存储数据,以保存该第一个数字,使用运算符并输入第二个数字,当然还有最终结果...这里有些帮助吗?
Here is the code : This is the first form and calculator.
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 Kalkulator
{
public partial class Kalkulator : Form
{
public Kalkulator()
{
InitializeComponent();
_operacije.Show();
_rezultat.Show();
}
public delegate void obracunaj();
public event obracunaj Obracunajevent;
//public void NoveOperacije()
//{
// var f = new Operacije();
// f.Obracunajevent += obracunaj_event;
// f.Show();
//}
Rezultat _rezultat = new Rezultat();
Operacije _operacije = new Operacije();
int[] array = new int[1];
decimal value1;
private void n1_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "1";
value1 = Convert.ToDecimal(_rezultat.textBox1.Text);
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "1";
}
}
private void n2_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "2";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "2";
}
}
private void n3_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "3";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "3";
}
}
private void n4_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "4";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "4";
}
}
private void n5_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "5";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "5";
}
}
private void n6_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "6";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "6";
}
}
private void n7_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "7";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "7";
}
}
private void n8_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "8";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "8";
}
}
private void n9_Click(object sender, EventArgs e)
{
if (_rezultat.textBox1.Text == "0" && _rezultat.textBox1.Text !=
null)
{
_rezultat.textBox1.Text = "9";
}
else
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "9";
}
}
private void n0_Click(object sender, EventArgs e)
{
_rezultat.textBox1.Text = _rezultat.textBox1.Text + "0";
}
}
}
这是名为“操作”的第二种形式
using Kalkulator;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Kalkulator
{
public partial class Operacije : Form
{
public Operacije()
{
InitializeComponent();
}
double PrviBroj;
string Operacija;
double Rezultat1;
Izracun _izracun = new Izracun();
Rezultat _rezultat = new Rezultat();
void obracunaj_event()
{
return;
}
decimal value2;
private void jednako_Click_1(object sender, EventArgs e)
{
if(!String.IsNullOrEmpty(_rezultat.textBox1.ToString()))
{
value2 = Convert.ToDecimal(_rezultat.textBox1.Text);
MethodToExecute();
_rezultat.Show();
}
}
public void MethodToExecute() //tu spada jednako_Click_1
{
double DrugiBroj;
double Rezultat;
if (double.TryParse(_rezultat.textBox1.Text, out Rezultat1))
{
DrugiBroj = Convert.ToDouble(_rezultat.textBox1.Text);
if (Operacija == "+")
{
Rezultat = (PrviBroj + DrugiBroj);
_rezultat.textBox1.Text = Convert.ToString(Rezultat);
PrviBroj = Rezultat;
}
if (Operacija == "-")
{
Rezultat = (PrviBroj - DrugiBroj);
_rezultat.textBox1.Text = Convert.ToString(Rezultat);
PrviBroj = Rezultat;
}
if (Operacija == "*")
{
Rezultat = (PrviBroj * DrugiBroj);
_rezultat.textBox1.Text = Convert.ToString(Rezultat);
DrugiBroj = Rezultat;
}
if (Operacija == "/")
{
Rezultat = (PrviBroj / DrugiBroj);
_rezultat.textBox1.Text = Convert.ToString(Rezultat);
PrviBroj = Rezultat;
}
}
}
private void plus_Click_1(object sender, EventArgs e)
{
if (double.TryParse(_rezultat.textBox1.Text, out Rezultat1))
{
PrviBroj = Convert.ToDouble(_rezultat.textBox1.Text);
_rezultat.textBox1.Text = "0";
Operacija = "+";
}
var f = new Kalkulator();
f.Obracunajevent += obracunaj_event;
f.Show();
}
private void minus_Click_1(object sender, EventArgs e)
{
if (double.TryParse(_rezultat.textBox1.Text, out Rezultat1))
{
PrviBroj = Convert.ToDouble(_rezultat.textBox1.Text);
_rezultat.textBox1.Text = "0";
Operacija = "-";
}
var f = new Kalkulator();
f.Obracunajevent += obracunaj_event;
f.Show();
}
private void puta_Click_1(object sender, EventArgs e)
{
if (double.TryParse(_rezultat.textBox1.Text, out Rezultat1))
{
PrviBroj = Convert.ToDouble(_rezultat.textBox1.Text);
_rezultat.textBox1.Text = "0";
Operacija = "*";
}
var f = new Kalkulator();
f.Obracunajevent += obracunaj_event;
f.Show();
}
private void podijeli_Click_1(object sender, EventArgs e)
{
if (double.TryParse(_rezultat.textBox1.Text, out Rezultat1))
{
PrviBroj = Convert.ToDouble(_rezultat.textBox1.Text);
_rezultat.textBox1.Text = "0";
Operacija = "/";
}
var f = new Kalkulator();
f.Obracunajevent += obracunaj_event;
f.Show();
}
private void ocisti_Click_1(object sender, EventArgs e)
{
_rezultat.textBox1.Text = "0";
}
}
}
这是第三位:结果
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 Kalkulator
{
public partial class Rezultat : Form
{
public Rezultat()
{
InitializeComponent();
}
}
}
所以这是我的主要问题,如何将这三个连接起来,我想与事件和代表联系,但我不知道要这样做...谢谢!
答案 0 :(得分:-1)
您可以通过以下方式实现您想要的东西:
小写代码:
public partial class MainForm : Form
{
private Child1Form child1 = null;
public MainForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (child1 == null)
{
child1 = new Child1Form();
child1.MdiParent = this;
child1.Show();
}
}
private void button2_Click(object sender, EventArgs e)
{
if (child1 != null)
{
child1.Close();
child1.Dispose();
child1 = null;
}
}
}
有关更多信息,请阅读this article,然后再对。