2008/C#2008. 5. 19. 17:44

//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;
                }
            }
        }

    }
}

 

Posted by penguindori
2008. 5. 15. 12:15

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.