반응형
임의로 배열로 추가해놓은 Chart를 출력해놓은 상태에서, TextBox에 값을 입력하고 '추가' 버튼을 클릭하면 TextBox의 값이 Chart에 추가되서 출력되는 Form을 구현해보자.
class Book
{
public string Name { get; set; }
public int Price { get; set; }
public Book(string _Name, int _Price)
{
Name = _Name;
Price = _Price;
}
}
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace _20200909_004
{
public partial class Form1 : Form
{
//int[] iPrice;
//string[] sName;
List<int> BookPrice = new List<int>();
List<string> BookName = new List<string>();
public Form1()
{
InitializeComponent();
Book[] aBook = new Book[]
{
new Book("책1", 5900),
new Book("책2", 6400),
new Book("책3", 4500),
new Book("책4", 8200),
new Book("책5", 5400),
new Book("책6", 3800),
new Book("책7", 3200),
};
foreach (var Temp in aBook) // var가 Book 타입으로 자동으로 바꿔준다
{
BookPrice.Add(Temp.Price); // 리스트를 사용했기때문에 배열을 일일이 써줄필요가 없다
BookName.Add(Temp.Name);
}
}
private void Form1_Load(object sender, EventArgs e)
{
//chart1.Series[0].Points.DataBindY(iPrice);
//chart1.Series[0].Points.DataBindX(sName);
chart1.Series[0].Points.DataBindXY(BookName, BookPrice);
}
private void button1_Click(object sender, EventArgs e)
{
BookName.Add(textBox1.Text);
BookPrice.Add(int.Parse(textBox2.Text));
chart1.Series[0].Points.DataBindXY(BookName, BookPrice);
}
}
}
실행화면에서 책 이름, 가격을 설정한 후에 '추가' 버튼을 클릭해보자.
이번엔 삭제버튼도 만들어보자.
삭제할때의 책 가격도 알아야하니까 차트의 데이터값 하나하나마다 값(책 가격)을 출력하도록 해보자.
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace _20200909_004
{
public partial class Form1 : Form
{
//int[] iPrice;
//string[] sName;
List<int> BookPrice = new List<int>();
List<string> BookName = new List<string>();
public Form1()
{
InitializeComponent();
Book[] aBook = new Book[]
{
new Book("책1", 5900),
new Book("책2", 6400),
new Book("책3", 4500),
new Book("책4", 8200),
new Book("책5", 5400),
new Book("책6", 3800),
new Book("책7", 3200),
};
foreach (var Temp in aBook) // var가 Book 타입으로 자동으로 바꿔준다
{
BookPrice.Add(Temp.Price); // 리스트를 사용했기때문에 배열을 일일이 써줄필요가 없다
BookName.Add(Temp.Name);
}
}
private void Form1_Load(object sender, EventArgs e)
{
//chart1.Series[0].Points.DataBindY(iPrice);
//chart1.Series[0].Points.DataBindX(sName);
chart1.Series[0].Points.DataBindXY(BookName, BookPrice);
chart1.Series[0].IsValueShownAsLabel = true; // 차트 하나하나의 값(책가격)표시
}
private void button1_Click(object sender, EventArgs e)
{
BookName.Add(textBox1.Text);
BookPrice.Add(int.Parse(textBox2.Text));
chart1.Series[0].Points.DataBindXY(BookName, BookPrice);
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")
{
for (int i = 0; i < BookName.Count; i++)
{
if (BookName[i] == textBox1.Text && BookPrice[i] == int.Parse(textBox2.Text))
{
BookPrice.RemoveAt(i);
BookName.RemoveAt(i);
break;
}
}
chart1.Series[0].Points.DataBindXY(BookName, BookPrice);
}
else
{
MessageBox.Show("책 제목과 가격을 입력해주세요");
}
}
}
}
실행해보자
책 8을 추가한 다음에
반응형
'개발자과정준비 > WinForm' 카테고리의 다른 글
[WinForm] DHT11를 마리아DB로 연동해서 윈폼 Chart로 출력 (0) | 2020.09.17 |
---|---|
[WinForm] 두 개의 Chart, 수학 함수 그래프 그리기 (0) | 2020.09.11 |
[Winform] 윈폼 Chart (0) | 2020.09.10 |
[Winform] 윈폼 복습 11. TabControl (0) | 2020.08.27 |
[Winform] 윈폼 복습 10. Timer 컨트롤, DateTimePicker (0) | 2020.08.27 |