ミミック窓オペレーティングコンピューティングシステムの添付ファイルがある、スタイル、デザイン、基本的なメニュー項目設計する(ショートカットなどのキー、ホットキー、および分割ラインを)
機能要件:下図に示すようなファンクションキーを実現します
ホットキーの設定方法は次のとおりです。
まず、フォームアイテムを使用して、図に示すようなフォームを作成します。
ドロップダウンメニュー項目を右クリックします
アイテムの編集をクリックしてホットキーを設定します
DropdownItemsコレクションをクリックします
ここにホットキーを設定します。
図のように、すべての設定が完了した後
次に、計算機フォームをクリックします
初期表示テキストボックスは空です。0〜9および小数点のオペランド監視を追加します。
オペレーターのオペレーター監視を追加し、削除、バックスペース、および空のリスナーをそれぞれ追加します。
全体のコードは次のとおりです。
<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>
最終的な実行結果は次のとおりです。