프로그래밍/C#_시트 프로그램

[C#_시트 프로그램] 데이터를 입력해보자. (1)

사과맛츄르 2024. 11. 26. 21:56
반응형

이제 카테고리를 만들었으니 데이터를 입력할 준비가 되었다.

먼저 할 일은 내가 입력하고 싶은 카테고리를 지정하는 것이다!


TreeNode의 데이터로 ComboBox를 만들자!

combobox 2개 만들어주고 DropDownStyle을 DropDownList로 바꿔주자!

 

코드에서도 초기화가 가능하지만, 여기에 입력을 하면,

디자인쪽 코드에 적용된다.

public mainForm()
{
    InitializeComponent();
    InitializeDatabase();


    LoadTreeNodeData();

    Console.WriteLine(categoriesNode);
    foreach (TreeNode node in categoriesNode.Nodes)
    {
        Console.WriteLine("\t - " + node.Text);
        foreach (TreeNode subnode in node.Nodes)
            Console.WriteLine("\t\t - " + subnode.Text);

        cbMainCategory.Items.Add(node.Text);
    }

    cbMainCategory.SelectedIndex = 0;
    cbSubCategory.SelectedIndex = 0;

    cbMainCategory.SelectedIndexChanged += CbMainCategory_SelectedIndexChanged;

    Console.WriteLine("메인 폼 시작");
}

mainForm 생성자 쪽에서 Main Category 쪽 목록을 추가해주자!

그리고, Main 쪽 선택된 index가 바뀌면 발생하는 이벤트를 추가하자.

private void CbMainCategory_SelectedIndexChanged(object sender, EventArgs e)
{
    ComboBox _sender = (ComboBox)sender;

    cbSubCategory.Items.Clear();
    cbSubCategory.Items.Add("소분류");
    cbSubCategory.SelectedIndex = 0;

    if (_sender.SelectedIndex == 0)
    {
        cbSubCategory.Enabled = false;
        return;
    }

    cbSubCategory.Enabled = true;
    foreach (TreeNode node in categoriesNode.Nodes)
    {
        if(node.Index == (_sender.SelectedIndex - 1))
        {
            foreach(TreeNode subnode in node.Nodes)
            {
                cbSubCategory.Items.Add(subnode.Text);
            }
            return;
        }
    }
}

메인 카테고리 선택이 바뀌면, 소분류쪽을 전부 지워버리고 초기화하자.

그 다음, 대분류가 0이면 소분류를 비활성화한 다음 return한다.

그렇지 않으면, node를 탐색하면서 소분류의 목록을 넣어주자.

 

단, index 0번은 "대분류"기 때문에 -1을 해준 값과 비교하여 목록에 추가하자.


데이터를 생성해보자!

TextBox와 Button으로 만들었다

다음과 같이 데이터를 만들 수 있도록 해보자.

그 다음 추가 버튼을 더블클릭하면 Click이벤트가 생성된다

click 이벤트의 탬플릿이 만들어진다. 다른 컴포넌트도 가능하다!

지금은 이 데이터를 저장하거나 표출할 공간이 없으니 대분류, 소분류의 번호와 제목, 금액 내용을 읽어서 Console에 출력하자.

우선 앞서 만들어진 함수를 채워주자

private void btnAddItem_Click(object sender, EventArgs e)
{
    TreeNode mainNode = categoriesNode.Nodes[cbMainCategory.SelectedIndex - 1];
    Console.WriteLine($"대분류: {mainNode.Text}");
    Console.WriteLine($"소분류: {mainNode.Nodes[cbSubCategory.SelectedIndex-1].Text}");
    Console.WriteLine($"  제목: {tbTitle.Text}");
    Console.WriteLine($"  가격: {tbPrice.Text}");
    Console.WriteLine($"  내용: {tbMsg.Text}");

}

이렇게 만들고, 프로그램을 실행해 다음과 같이 입력한 뒤 버튼을 클릭하면 결과가 나온다!

클릭하면! 입력한 데이터가 나온다!

일단 이렇게 데이터를 생성할 수 있도록 하는 형태까지 만들어졌다!

여기서 부족한 것은 날짜를 지정하는 것과 실제 Form위에 데이터를 올리는 것이다!


데이터를 입력해보자. (2)

 

[C#_시트 프로그램] 데이터를 입력해보자. (2)

데이터를 만드는 것까진 성공하였다. 이제 이 데이터를 하나씩 화면에 올려보자.가장 일반적인 방법은 ListView를 이용하는 것이다.ListView로 데이터를 표시해보자.그리고 기존에 있는 데이터를 콘

apple-churr.tistory.com

 

반응형