Los archivos adjuntos del sistema informático operativo Mimic Windows son un diseño de estilo , para diseñar los elementos básicos del menú ( tecla de acceso directo , tecla de acceso rápido , etc. y la línea divisoria )
Requisitos de función : realice las teclas de función como se muestra en la figura siguiente
El método para configurar la tecla de acceso rápido es el siguiente:
Primero use el elemento de formulario para hacer el formulario como se muestra en la figura
Haga clic con el botón derecho en el elemento del menú desplegable
Haga clic en editar elemento para configurar la tecla de acceso rápido
Haga clic en la colección DropdownItems
Configure la tecla de acceso rápido aquí, y así sucesivamente;
Una vez completada toda la configuración, como se muestra
Luego haga clic en el formulario de la calculadora
El cuadro de texto de la pantalla inicial está vacío; agregue monitoreo de operando para 0-9 y punto decimal,
Agregue monitoreo de operador para operadores y agregue oyentes para eliminar, retroceder y vaciar, respectivamente;
El código completo es el siguiente:
<span style="font-family:Comic Sans MS;font-size:14px;">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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
//保存用户所按的运算符
private string s;
//保存用户输入的运算数
private double x, y;
//运算符按钮对象
private Button btn;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void buttond_Click(object sender, EventArgs e)
{
btn = (Button)sender;
textBox1.Text += btn.Text;
}
private void buttonop_Click(object sender, EventArgs e)
{
btn = (Button)sender;
if(btn.Name!="btn_Equal")
{
x = Convert.ToDouble(textBox1.Text);
textBox1.Text = "";
s = btn.Name;
switch (s)
{
case "btn_Recip":
textBox1.Text = "1/" + x.ToString() + "=" + (1/x).ToString();
break;
case "btn_Sqrt":
textBox1.Text = "√" + x.ToString() + "=" + Math.Sqrt(x).ToString();
break;
}
}
else
{
y = Convert.ToDouble(textBox1.Text);
switch(s)
{
case"btn_Add":
textBox1.Text = x.ToString()+"+"+y.ToString()+"="+(x + y).ToString();
break;
case "btn_Sub":
textBox1.Text = x.ToString() + "-" + y.ToString() + "=" + (x - y).ToString();
break;
case "btn_Mul":
textBox1.Text = x.ToString() + "*" + y.ToString() + "=" + (x * y).ToString();
break;
case "btn_Div":
if (y == 0)
{
MessageBox.Show("除零错误!!!", "信息提示", MessageBoxButtons.OK);
}
else
textBox1.Text = x.ToString() + "/" + y.ToString() + "=" + (x / y).ToString();
break;
case "btn_Mod":
textBox1.Text = x.ToString() + "%" + y.ToString() + "=" + (x % y).ToString();
break;
}
}
}
private void changeSign(object sender, EventArgs e)
{
double storNum;
if (textBox1.Text.Length > 0)
{
storNum = double.Parse(textBox1.Text);
storNum *= -1;
textBox1.Text = storNum.ToString();
}
btn_Equal.Select();
}
private void btnDeleteSign_Clicked(object sender, EventArgs e)
{
}
private void btnDeleteAll_Clicked(object sender, EventArgs e)
{
textBox1.Text = "";
}
private void btnDelete1_Clicked(object sender, EventArgs e)
{
this.textBox1.Text = this.textBox1.Text.Substring(0, this.textBox1.Text.Length - 1);
if(this.textBox1.Text=="")
{
this.textBox1.Text = "";
}
}
}
}</span>
El resultado final de la ejecución es el siguiente: