본문으로 바로가기
반응형

 임의로 배열로 추가해놓은 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);
        }
    }
}

실행화면


 

실행화면에서 책 이름, 가격을 설정한 후에 '추가' 버튼을 클릭해보자.

책8, 8000원을 입력하고 추가 버튼을 누르면 왼쪽의 차트에 추가되어서 출력된다

 

 

 

 

이번엔 삭제버튼도 만들어보자.

삭제할때의 책 가격도 알아야하니까 차트의 데이터값 하나하나마다 값(책 가격)을 출력하도록 해보자.

Form화면. (삭제버튼이 추가되었다)

 

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을 추가한 다음에

삭제버튼을 클릭하면 책8의 데이터가 삭제된다

 

반응형