블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Category

Recent Post

Recent Comment

Archive

2009. 8. 20. 18:05 .Net Project/.Net C#
반응형
 윈폼(Windows Form)
그래픽 환경에서 화면을 구성하고 사용자와 통신하는 가장 기본적인 부품이 바로 윈도우
닷넷에서는 윈도우를 폼이라고 칭하며, 폼은 System.Windows.Form네임스페이스에 Form이라는 이름의 클래스로 정의되어 있으며, 클래스 안에 폼과 관련된 수많은 프로퍼티 가 정의 되어 있고, 폼을 관리하는 메서드와 폼에서 발생 가능한 사건들을 처리하는 이벤트 제공

 8월 20일 <WindowsForm 버튼어 메시지 박스 출력>

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnName_Click(object sender, EventArgs e)
        {            

             MessageBox.Show("안녕하세요 만나서 반갑습니다");

        }
    }
}


 MyWindowsForm 메뉴컨텍스트 연습 frmMain.Cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyWinForms
{
    public partial class MainForm : Form
    {
        private int PenWidth = 1;
        private Color InColor = Color.Red;
        enum eShape { CIRCLE, RECT };
        eShape Shape = eShape.CIRCLE;

        public MainForm()
        {
            InitializeComponent();
        }

        private void miExit_Click(object sender, EventArgs e)
        {
            //현재 프로그램기본적인 종료
            Application.Exit();
           
        }
        private void mnuAbout_Click(object sender, EventArgs e)
        {
            //MessageBox.Show("프로그램 정보");
            frmAbout fa = new frmAbout();
            //모달폼 : 현재창을 닫아야지만, 메인으로 이동 가능
            fa.ShowDialog(); //모달대화상자형태로 하고자 할때
        }

        private void btnButton_Click(object sender, EventArgs e)
     

    {
         //모달리스 폼 : 독립적인 하나의 폼
         MyWinForms.Controls.frmButton fb = new MyWinForms.Controls.frmButton();
         fb.MdiParent = this; //MDI 컨테이너를 현재폼(메인)으로 설정 
          fb.Show();
    }

        //2.컨텍스트 메뉴 관련
        private void cmsProgram_Click(object sender, EventArgs e)
        {
            //frmAbout fa = new frmAbout();
            //ShowDialog();
            mnuAbout_Click(null,null); //재사용 호출시 사용

        }
       
        private void cmsExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void mnuShapCircle_Click(object sender, EventArgs e)
        {
            Shape = eShape.CIRCLE;
            Invalidate();
        }

        private void MainForm_Paint(object sender, PaintEventArgs e)
        {
           

  Pen P = new Pen(Color.Black, PenWidth);
             SolidBrush B = new SolidBrush(InColor);

            switch (Shape)
            {
                case eShape.CIRCLE:
                    e.Graphics.FillEllipse(B, 100, 50, 100, 100);
                    e.Graphics.DrawEllipse(P, 100, 50, 100, 100);
                    break;
                case eShape.RECT:
                    e.Graphics.FillEllipse(B, 100, 50, 100, 100);
                    e.Graphics.DrawEllipse(P, 100, 50, 100, 100);

                    break;
            }
        }

        private void mnuShapeRect_Click(object sender, EventArgs e)
        {
            Shape = eShape.RECT;
            Invalidate();
        }

    }
}



 8월 21일 <FrmButtonLabelTextBox.cs>

 MainForm 에서 해야할 이벤트 발생.Cs

  private void btnLavelText_Click(object sender, EventArgs e)
        {
             //컨트롤 에러 발생 (참조할수 없는 에러)
            //MyWinForms.Controls.FrmButtonLabelTextBox blt = new 
            //MyWinForms.Controls.FrmButtonLabelTextBox();
            //blt.MdiParent = this;
            //blt.Show(); // 네임스페이스 선언 후 사용하면 가능
            FrmButtonLabelTextBox frmButton = new FrmButtonLabelTextBox();
            frmButton.Show();
        }

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyWinForms
{
    public partial class FrmButtonLabelTextBox : Form
    {
        public FrmButtonLabelTextBox()
        {
            InitializeComponent();
        }

        private void btnCmd_Click(object sender, EventArgs e)
        {
            int kor = Convert.ToInt32(txtKor.Text);
            int eng = Int32.Parse(txtEng.Text);

            int tot = kor + eng;

            MessageBox.Show(string.Format("{0} + {1} = {2}", kor, eng, tot));
 
            btnCancel_Click(null, null); //재 호출
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            //클리어 여러가지 방식으로 표현하기 위해
            this.txtKor.Text = "";
            this.txtEng.Text = string.Empty;

            txtKor.Focus(); //포커스 이동

        }

        private void txtKor_KeyDown(object sender, KeyEventArgs e)
        {
           

  //두번째 매개변수 e.keycode로 키보드값을 이벤트 발생
            if (e.KeyCode == Keys.Enter)
            {
                this.txtEng.Focus();                 
            }

        }
        private void txtEng_KeyDown(object sender, KeyEventArgs e)
        {
           
  if (e.KeyCode == Keys.Enter)
            {
                btnCmd_Click(null, null);  //호출 하여 재사용가능
            }

        }
    }
}


 FrmCheckBoxRadioButton.cs

 MainForm 에서 해야할 이벤트 발생.Cs
 

private void 체크박스라디오버튼ToolStripMenuItem_Click(objectsender,EventArgs e)
        {
            MyWinForms.Controls.FrmCheckBoxRadioButton radio = new
            MyWinForms.Controls.FrmCheckBoxRadioButton();

            radio.MdiParent = this; 
            radio.Show();
        }


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyWinForms.Controls
{
    public partial class FrmCheckBoxRadioButton : Form
    {
        public FrmCheckBoxRadioButton()
        {
            InitializeComponent();
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            string msg = "";

 
       
            //관심사항

            if (this.chkseeSharp.Checked)
            {
                msg += this.chkseeSharp.Text + "\r\n"   ;
            }

            if (this.chkAsp.Checked)
            {
                msg += this.chkAsp.Text + "\r\n";
            }

            if (!this.chkSilver.Checked)
            {
                //empty
            }
            else
            {
                msg += this.chkSilver.Text + "\r\n";
            }

 
            //성별
            if (this.OptMan.Checked )
            {
                msg += string.Format("{0}{1}{0}", "\r\n", OptMan.Text );
               
            }
            else
            {
                msg += string.Format("{0}{1}{0}", "\r\n", OptWomen.Text);
            }

            this.txtResult.Text = msg;
           
        }

        //CheckBox Checked속성 초기값을 주려고 할때
        private void FrmCheckBoxRadioButton_Load(object sender, EventArgs e)
        {
            this.OptMan.Checked = true;  //Checked
            this.chkSilver.Checked = true; //Checked
        }
    }
}



 8월24일 텍스박스 주요 속성.CS

Menu연결하기 위해 사용되는 .CS 
 
   private void 텍스트박스주요속성ToolStripMenuItem_Click
                                                     (object sender, EventArgs e)
        {
            MyWinForms.Controls.FrmTextBox TextBox = new              
            MyWinForms.Controls.FrmTextBox();

            TextBox.MdiParent = this;
            TextBox.Show();
        }

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace MyWinForms.Controls
{
    public partial class FrmTextBox : Form
    {
        public FrmTextBox()
        {
            InitializeComponent();
        }

        private void BtnCmd_Click(object sender, EventArgs e)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("싱글라인" + txtSinglebox.Text);
            sb.Append("멀티라인" + txtDoubleBox.Text);
            sb.Append(string.Format("패스워드 : {0} ", txtPasswordBox.Text));
            sb.Append("마스크 : " + txtMaskBox.Text);
            sb.AppendFormat("리치 : {0}",  txtRichBox.Text);

            MessageBox.Show(sb.ToString());
        }
    }
}


 8월 24일 프로그램 도움말에서 링크과련 .Cs

   private void lnkAuthor_LinkClicked(object sender, 
                                 LinkLabelLinkClickedEventArgs e)
        {
            string url = "
http://fool8585.tistory.com/";
            System.Diagnostics.Process.Start(url);

            //웹브라우저 이동하면서 notepad실행하고 할때..
            System.Diagnostics.Process.Start("notepad.exe");
                  

        }


 8월 24일 클래스 메시지박스 관련 .CS
            //메시지 박스 주요 모양
            //MSDN 온라인 적극활용
            MessageBox.Show("Test");
            MessageBox.Show("캡션","제목");
            MessageBox.Show("버튼의 종료", "버튼",
                             MessageBoxButtons.OKCancel);
            MessageBox.Show("아이콘의 종류",
            "아이콘",MessageBoxButtons.OK ,MessageBoxIcon.Exclamation);

 8월 24일 콤보박스와 리스트박스 .Cs
          //동적으로 아이콘의 종류를 리스트박스에 초기화
            //lstIconBox.Items.Add("안녕하세요");
            //lstIconBox.Items.Add("반값습니다");
            lstIconBox.Items.Add(MessageBoxIcon.Error.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Information.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Stop.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Question.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Warning.ToString());
            lstIconBox.Items.Add(MessageBoxIcon.Hand.ToString());
확인버튼 눌렀을경우 발생할 이벤트 .CS

private void btnCmd_Click(object sender, EventArgs e)
        {
            if (lstIconBox.SelectedIndex != -1 && lstIconBox.SelectedIndex !=
                                                    -1)
            {
                string btn = lstIconBox.Items[lstIconBox.SelectedIndex].
                                ToString();
                string icon = lstIconBox.Items
                                  [lstIconBox.SelectedIndex].ToString();

                //process
                MessageBox.Show(
                    string.Format("버튼 : {0}, 아이콘 {1}", btn, icon));
            }
            else
            {
                MessageBox.Show("콤보박스와 리스트박스를 선택해주세요 ");
            }
        }

 Main Menu 관련 이벤트 발생
MyWinForms.Controls.FrmComboListBox ComboList = new MyWinForms.Controls.FrmComboListBox();
            ComboList.MdiParent = this;
            ComboList.Show();

 8월 24일 ...콤보박스와 리스트박스 IF  ~else if 사용

 if (lstIconBox.SelectedIndex != -1 && lstIconBox.SelectedIndex != -1)
            {
                string btn = lstIconBox.Items
                                [lstIconBox.SelectedIndex].ToString();
                string icon = lstIconBox.Items
                                [lstIconBox.SelectedIndex].ToString();

                //process
                MessageBox.Show(
                    string.Format("버튼 : {0}, 아이콘 {1}", btn, icon));
            }
            else
            {
                DialogResult result = MessageBox.Show
                                          ("콤보박스와 리스트박스를 선택해주세요 
                                          ","Caption",MessageBoxButtons.OKCancel);
                if (result == DialogResult.OK)
                {
                    txtMessageBox.Text = "확인 클릭";
                }
                else if (result == DialogResult.Cancel)
                {
                    txtMessageBox.Text = "최소 버튼";
                }
            }


 8월 24일 GroupBox관련 .CS
 groupBox1.Dock = DockStyle.Right;
 groupBox2.Dock = DockStyle.Top;
 <Dock관련 속성>
 하나의 컨트롤이 해당 컨테이너의 가장자리에 도킹되면 이 컨트롤은 컨테이너의 크기가 바뀔 때 항상 가장자리에 대한 플러시에 놓이게 됩니다.
둘 이상의 컨트롤이 가장자리에 도킹되면 컨트롤은 해당 Z 순서에 따라 나란히 표시되며 Z 순서 이상의 컨트롤은 컨테이너의 가장자리에서 떨어진 곳에 놓이게 됩니다.
 멤버이름 설명 
 None  컨트롤이 도킹 되지 않습니다
 Top  컨트롤이 위쪽에 도킹 됩니다 
 Bottom  컨트롤이 아래쪽에 도킹 됩니다
 Right  컨트롤이 오른쪽에 도킹 됩니다
 Left  컨트롤이 왼쪽에 도킹 됩니다
 Fill  컨트롤이 가장장리에 도킹되며 알맞게 조절






반응형

'.Net Project > .Net C#' 카테고리의 다른 글

인터넷쇼핑몰구축(Console)  (0) 2009.08.21
103장 체중관리 프로그램(Console)  (0) 2009.08.21
101장 프로젝션  (0) 2009.08.20
100장 쿼리표현식(LINQ)  (0) 2009.08.19
99장 람다식  (0) 2009.08.19
posted by Magic_kit