비주얼 스튜이오에서 윈도우 폼 앱(넷 프레임워크)선택을 하여 만들어 주고 맨 왼쪽에 바에서 도구 상자에 오른쪽위의 자동숨기기 클릭을 하여 줍니다.
공용 컨트롤에서 원하는 컨트롤을( ex)버튼) 끌어와서 한 번 클릭이 된 상태라면 각각의 컨트롤(버튼, 라벨 등)을 클릭하면 속성밑에 Systme.Windows.Forms.컨트롤이름이 적혀져있을 것입니다. 이 떄 가장 먼저 속성에 디자인-Name에서 객체 이름을 지어줍니다. - 중요! , 그리고 속성을 이용해 원하는 대로 디자인 해줍니다.
해당 컨트롤을 더블 클릭하면 버튼의 클릭 이벤트 코드로 이동됩니다. (만약 클릭이벤트 코드를 주석처리하면 에러! 지우지않고 놔두면됩니다. 두개의 인자를 받는데 sender는 어떤 컨트롤에서 들어왔는지, e는 해당하는 이벤트를 가집니다.)
ex01)
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 WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); //시작점 - 실행을 가능하게 만듬
//Button b1 = new Button();
//b1.Text = "버튼";
//b1.Width = 200;
//b1.Height = 100;
//b1.Location = new Point(100, 200); //좌표 위치
//Controls.Add(b1); //Controls에 b1을 붙인다.
//bt01.Text = "시작되었습니다.";
}
string str;
private void bt01_Click(object sender, EventArgs e)
{
lb_result.Text = "결과 : ";
str = tb_input.Text;
lb_result.Text = lb_result.Text + str;
tb_input.Text = "";
MessageBox.Show("완료"); //메시지 alert창
}
}
}
종합 예제
이름과 지역 나이를 입력받아 확인을 누르면 MessageBox에 이름은 xx이고 지역은 xx, 나이는 yyy입니다.를 나타내는 창 띄우기.(텍스트박스 창의 확인을 누르면 빈칸으로 초기화 시키기), 만약 하나라도 입력하지 않은 텍스트 박스가 있다면 다시 MessageBox에 결과창이 나타나지 않도록 하기!
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 WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string str1,str2,str3;
private void btn_1_Click(object sender, EventArgs e)
{
str1 = tb_1.Text;
str2 = tb_2.Text;
str3 = tb_3.Text;
if(str1 == "" || str2 == "" || str3 == "")
{
MessageBox.Show("입력안된 값이 있습니다. 다시 입력해 주세요");
}
else
{
MessageBox.Show($"이름은 {str1}이고\n 지역은 {str2},\n 나이는 {str3}입니다.");
tb_1.Text = "";
tb_2.Text = "";
tb_3.Text = "";
}
}
}
}
리스트와 체크박스, 라디오 박스
배열과 흡사하나 배열은 방을 먼저 정해주어야 하고 추가가 더이상 안되고 삭제를 하면 그 공간은 삭제된채 남겨져 있다. 리스트는 방의 개수를 설정해주지 않아도 되며 자동으로 추가될 수록 늘어난다. 추가가 될 때 배열이 생성되는 것처럼 뒤에 계속 붙는다(Add). 한칸을 삭제를 하면 알아서 그 공간을 삭제하고 앞으로 한칸 떙겨진다.
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 WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_Click(object sender, EventArgs e)
{
List<string> list = new List<string>(); //리스트
if(cb_apple.Checked) // 체크가 되었나
list.Add("apple"); //되었다면 추가를 해줘라(배열이 뒤에 붙는 형식)
if (cb_banana.Checked)
list.Add("banana");
MessageBox.Show(string.Join(",", list));
}
private void btn2_Click(object sender, EventArgs e)
{
if (rb_apple.Checked)
MessageBox.Show("사과");
if (rb_banana.Checked)
MessageBox.Show("바나나");
}
}
}
종합 예제2
텍스트 박스에 숫자 2개를 받고 그룹박스에 더하기, 빼기, 곱하기, 나누기를 라디오박스로 선택하고 계산버튼을 클릭하면 라벨에 값이 뜨게 된다.
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 WindowsFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string str1, str2;
private void button1_Click(object sender, EventArgs e)
{
label3.Text = "결과 : ";
int str1 = int.Parse(textBox1.Text);
int str2 = int.Parse(textBox1.Text);
int sum = str1 + str2;
int minus = str1 - str2;
if(str1 < str2)
{
int temp = str1;
str1 = str2;
str2 = temp;
}
int multi = str1 * str2;
int divide = str1 / str2;
if (radioButton1.Checked)
label3.Text = label3.Text + sum;
if (radioButton1.Checked)
label3.Text = label3.Text + minus;
if (radioButton1.Checked)
label3.Text = label3.Text + multi;
if (radioButton1.Checked)
label3.Text = label3.Text + divide;
textBox1.Text = "";
textBox2.Text = "";
}
}
}
'Programming > C#' 카테고리의 다른 글
MYSQL C# 연동1 (0) | 2021.05.28 |
---|---|
C# ListView를 다뤄보자! (0) | 2021.05.27 |
C# 예외 처리 (0) | 2021.04.30 |
C# 과제 (0) | 2021.04.29 |
C# 메소드 (0) | 2021.04.29 |
댓글