using System;
using System.Drawing;
using System.Windows.Forms;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
namespace Lab_1
{
public partial class Main_Form : Form
{
bool b = true;
Font c;
public Main_Form()
{
InitializeComponent();
this.AcceptButton = res_btn;
c = this.Font; //для изменения размера формы
}
/// <summary>
/// Объект класса FormEvents, содержащего логику обработчиков событий
/// </summary>
FormEvents events = new FormEvents();
/// <summary>
/// Обработчики событий нажатия на кнопки NumPad (0 - 9) и кнопку изменения знака
/// </summary>
#region NumPad
private void Main_Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode.Equals(Keys.NumPad0))
zero_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad1))
one_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad2))
two_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad3))
three_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad4))
four_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad5))
five_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad6))
six_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad7))
seven_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad8))
eight_btn.PerformClick();
if (e.KeyCode.Equals(Keys.NumPad9))
nine_btn.PerformClick();
if (e.KeyCode == Keys.Delete)
dell_btn.PerformClick();
if (e.KeyCode == Keys.Add)
add_btn.PerformClick();
if (e.KeyCode == Keys.Divide)
div_btn.PerformClick();
if (e.KeyCode == Keys.Subtract)
sub_btn.PerformClick();
if (e.KeyCode == Keys.Multiply)
mul_btn.PerformClick();
if (e.KeyCode == Keys.Back)
rem_btn.PerformClick();
}
/// <summary>
/// Нажатие на кнопку "0"
/// </summary>
private void zero_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender,ref res_tb,ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "1"
/// </summary>
private void one_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "2"
/// </summary>
private void two_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "3"
/// </summary>
private void three_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "4"
/// </summary>
private void four_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "5"
/// </summary>
private void five_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "6"
/// </summary>
private void six_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "7"
/// </summary>
private void seven_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "8"
/// </summary>
private void eight_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "9"
/// </summary>
private void nine_btn_Click(object sender, EventArgs e)
{
events.AddNumber(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "±"
/// </summary>
private void sign_btn_Click(object sender, EventArgs e)
{
events.AddSign(ref res_tb);
}
#endregion NumPad
/// <summary>
/// Обработчики событий нажатия на кнопки очистки поля ввода/вывода и поля истории
/// </summary>
#region DeleteB
// Нажатие на кнопку "<--"
private void rem_btn_Click(object sender, EventArgs e)
{
events.Delete(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "C"
/// </summary>
private void dell_btn_Click(object sender, EventArgs e)
{
events.Delete(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "CE"
/// </summary>
private void delall_btn_Click(object sender, EventArgs e)
{
events.Delete(sender, ref res_tb, ref hist_lb);
}
#endregion DeleteB
/// <summary>
/// Обработчики событий нажатия на кнопки бинарных операторов ("+", "-", "*", "/")
/// </summary>
#region OperationsInTwo
/// <summary>
/// Нажатие на кнопку "+"
/// </summary>
private void add_btn_Click(object sender, EventArgs e)
{
events.TwoKinds(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "-"
/// </summary>
private void sub_btn_Click(object sender, EventArgs e)
{
events.TwoKinds(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "*"
/// </summary>
private void mul_btn_Click(object sender, EventArgs e)
{
events.TwoKinds(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "/"
/// </summary>
private void div_btn_Click(object sender, EventArgs e)
{
events.TwoKinds(sender, ref res_tb, ref hist_lb);
}
#endregion OperationsInTwo
/// <summary>
/// Обработчики событий нажатия на кнопки унарных операторов ("√(x)", "sin(x)", "x*x", "cos(x)", "x!", "1/x")
/// </summary>
#region OperationsInOne
/// <summary>
/// Нажатие на кнопку "√(x)"
/// </summary>
private void square_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender,ref res_tb,ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "sin(x)"
/// </summary>
private void sin_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "x*x"
/// </summary>
private void self_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "cos(x)"
/// </summary>
private void cos_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "x!"
/// </summary>
private void fact_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender, ref res_tb, ref hist_lb);
}
/// <summary>
/// Нажатие на кнопку "1/x"
/// </summary>
private void onediv_btn_Click(object sender, EventArgs e)
{
events.OneKind(sender, ref res_tb, ref hist_lb);
}
#endregion OperationsInOne
/// <summary>
/// Обработчик события нажатия на кнопку "="
/// </summary>
private void res_btn_Click(object sender, EventArgs e)
{
events.Result(ref res_tb, ref hist_lb);
}
/// <summary>
/// Обработчик события "загрузка формы"
/// </summary>
private void Main_Form_Load(object sender, EventArgs e)
{
this.MinimizeBox = false;
this.MaximizeBox = false;
}
/// Кнопка увеличения размеров калькулятора
private void Glasses_Click(object sender, EventArgs e)
{
if (b)
{
zero_btn.Font = new Font("Verdana", 25);
one_btn.Font = new Font("Verdana", 25);
two_btn.Font = new Font("Verdana", 25);
three_btn.Font = new Font("Verdana", 25);
four_btn.Font = new Font("Verdana", 25);
five_btn.Font = new Font("Verdana", 25);
six_btn.Font = new Font("Verdana", 25);
seven_btn.Font = new Font("Verdana", 25);
eight_btn.Font = new Font("Verdana", 25);
nine_btn.Font = new Font("Verdana", 25);
add_btn.Font = new Font("Verdana", 25);
sub_btn.Font = new Font("Verdana", 25);
div_btn.Font = new Font("Verdana", 25);
mul_btn.Font = new Font("Verdana", 25);
sign_btn.Font = new Font("Verdana", 25);
dell_btn.Font = new Font("Verdana", 25);
delall_btn.Font = new Font("Verdana", 25);
rem_btn.Font = new Font("Verdana", 25);
square_btn.Font = new Font("Verdana", 25);
self_btn.Font = new Font("Verdana", 20);
onediv_btn.Font = new Font("Verdana", 20);
fact_btn.Font = new Font("Verdana", 25);
sin_btn.Font = new Font("Verdana", 25);
cos_btn.Font = new Font("Verdana", 25);
res_btn.Font = new Font("Verdana", 25);
Glasses.Font = new Font("Verdana", 30);
hist_lb.Font = new Font("Verdana", 25);
this.Font = c = new Font("Verdana", 13); //Размер всей формы
}
else
{
this.Font = c = new Font("Verdana", 10);
zero_btn.Font = new Font("Verdana", 12);
one_btn.Font = new Font("Verdana", 12);
two_btn.Font = new Font("Verdana", 12);
three_btn.Font = new Font("Verdana", 12);
four_btn.Font = new Font("Verdana", 12);
five_btn.Font = new Font("Verdana", 12);
six_btn.Font = new Font("Verdana", 12);
seven_btn.Font = new Font("Verdana", 12);
eight_btn.Font = new Font("Verdana", 12);
nine_btn.Font = new Font("Verdana", 12);
add_btn.Font = new Font("Verdana", 12);
sub_btn.Font = new Font("Verdana", 12);
div_btn.Font = new Font("Verdana", 12);
mul_btn.Font = new Font("Verdana", 12);
sign_btn.Font = new Font("Verdana", 12);
dell_btn.Font = new Font("Verdana", 12);
delall_btn.Font = new Font("Verdana", 12);
rem_btn.Font = new Font("Verdana", 12);
square_btn.Font = new Font("Verdana", 12);
self_btn.Font = new Font("Verdana", 12);
onediv_btn.Font = new Font("Verdana", 12);
fact_btn.Font = new Font("Verdana", 12);
sin_btn.Font = new Font("Verdana", 12);
cos_btn.Font = new Font("Verdana", 12);
res_btn.Font = new Font("Verdana", 12);
Glasses.Font = new Font("Verdana", 22);
hist_lb.Font = new Font("Verdana", 14);
}
b = !b;
}
}
}