//2008년 5월 19일 박세우 작성 sewooim골뱅이.네이버점캄
동아리 과제 1 이걸 Pass 해야 다음단계로 ^^*
1. 동적으로 버튼을 임의로 만들기
2. 좀더 struct 나 class 를 만들어서 활용해보자.
-------------------------------------------
설명 : 해당 내용은 닷넷 2008로 제작하였습니다. 그림 -> 내용 설명 식으로 작성하겠습니다.
-------------------------------------------
1) 버튼 위치 및 버튼 기능 설정 class
using System;
using System.Collections.Generic;
using System.Text;
namespace Calculation
{
/*
* 버튼을 동적으로 할당하게 합니다.
* Class Name : ViewButton
* Method Name : BtnSetting
*/
class ViewButton
{
static System.Windows.Forms.Button[] _btn = new System.Windows.Forms.Button[10];
public System.Windows.Forms.Button [] btn
{
get {return _btn; }
set {_btn = value; }
}
public ViewButton()
{
for (int i = 0; i < _btn.Length; i++)
{
_btn[i] = new System.Windows.Forms.Button(); // Hip Memory에 할당 합니다.
}
}
public void BtnView()
{
for (int i = 0; i < _btn.Length; i++)
{
_btn[i].Text = i.ToString();
_btn[i].Size = new System.Drawing.Size(40,20);
_btn[i].Name = i.ToString();
_btn[i].Tag = i.ToString();
BtnPosition();
}
}
private void BtnPosition()
{
int w;
int p = w = 0;
for (int i = _btn.Length -1; i >= 0; i--)
{
if (i % 3 == 0)
{
if (i == 9)
{
p = 10;
w = 200;
_btn[i].Location = new System.Drawing.Point(w, p);
}
p += 20;
w = 200;
_btn[i].Location = new System.Drawing.Point(w, p);
}
else
{
w -= 50;
_btn[i].Location = new System.Drawing.Point(w,p);
}
}
}
}
}
---------------
Form1.cs
public partial class Form1 : Form
{
ViewButton vb;
string ok;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
vb = new ViewButton();
vb.BtnView();
for (int i = 0; vb.btn.Length > i; i++)
{
this.panel1.Controls.Add(vb.btn[i]);
vb.btn[i].Click += new EventHandler(Button_Click);
}
}
void Button_Click(object sender, EventArgs e)
{
Control ctl = (Control)sender;
ok += ctl.Tag.ToString();
this.labNum.Text = ok;
}
private void button1_Click(object sender, EventArgs e)
{
op = new Operation();
op["+"] = labNum.Text;
labNum.Text = null;
}
}
}
---------------
Operation.cs
namespace Calculating
{
class Operation
{
private int values;
private int Result = 0;
public string this[string what]
{
get
{
switch (what)
{
case "=": return Result.ToString();
default: return "";
}
}
set
{
switch (what)
{
case "+":
values = value;
break;
default: break;
}
}
}
}
}