본문 바로가기
C#

C# 할일 관리 프로그램(4) 할일관리(select)

by improve 2024. 3. 5.

TodoForm의 실행폼입니다.

 

 

 

public TodoForm()
{
    InitializeComponent();


    useridx_combobox.DataSource = new List<string>()
    {
         "1","2","3","4","5"
    };
    useridx_combobox.SelectedText = "1";

    DataTable dataTable = todoDBMan.select();

    int y = 90;
    int evenOdd = 1;
    foreach (DataRow row in dataTable.Rows)
    {

        int idx = int.Parse(row["idx"].ToString());
        string title = row["title"].ToString();
        string content = row["content"].ToString();
        DateTime finishdate = new DateTime(
                int.Parse(row["finishdate"].ToString().Split('-', ' ')[0]),
                int.Parse(row["finishdate"].ToString().Split('-', ' ')[1]),
                int.Parse(row["finishdate"].ToString().Split('-', ' ')[2])
        );


        Todo todo = new Todo();
        todo.idx = idx;
        todo.title = title;
        todo.content = content;
        todo.finishdate = finishdate;

        makeTodo(10, y, todo,evenOdd%2);
        y += 230;


    }

makeTodo 를 불러와서 x축에 10, y축에 기본 90을 하고 230을 추가로 더해준다.

데이터베이스에 있는 데이터 갯수만큼 panel이 만들어 진다.

evenOdd는 짝수와 홀수 에 panel 색을 바꿔준다.

이러면 가독성이 좀더 좋아질 수 있다.

 

디자인.cs에 있는 

panel4를 능동적으로 만들어준다.

public void makeTodo(int panelx, int panely, Todo todo, int evenOdd)
{
    System.Windows.Forms.CheckBox checkBox1 = new System.Windows.Forms.CheckBox();
    Label finish_lb_value = new Label();
    Label content_lb_value = new Label();
    Label title_lb_value = new Label();
    Label finish_lb = new Label();
    Label content_lb = new Label();
    Label title_lb = new Label();
    Panel panel4 = new Panel();

     #region panel4
    // 
    // finish_lb_value
    // 
    finish_lb_value.AutoSize = true;
    finish_lb_value.Location = new Point(13, 110);
    finish_lb_value.Name = "finish_lb_value";
    finish_lb_value.Size = new Size(64, 12);
    finish_lb_value.TabIndex = 5;
    finish_lb_value.Text = todo.finishdate.ToString("yyyy/MM/dd");
    // 
    // content_lb_value
    // 
    content_lb_value.AutoSize = true;
    content_lb_value.Location = new Point(13, 54);
    content_lb_value.Name = "content_lb_value";
    content_lb_value.Size = new Size(46, 12);
    content_lb_value.TabIndex = 4;
    content_lb_value.Text = todo.content;
    // 
    // title_lb_value
    // 
    title_lb_value.AutoSize = true;
    title_lb_value.Location = new Point(89, 11);
    title_lb_value.Name = "title_lb_value";
    title_lb_value.Size = new Size(24, 12);
    title_lb_value.TabIndex = 3;
    title_lb_value.Text = todo.title;
    // 
    // finish_lb
    // 
    finish_lb.AutoSize = true;
    finish_lb.Location = new Point(13, 81);
    finish_lb.Name = "finish_lb";
    finish_lb.Size = new Size(64, 12);
    finish_lb.TabIndex = 2;
    finish_lb.Text = "FinishDate";
    // 
    // content_lb
    // 
    content_lb.AutoSize = true;
    content_lb.Location = new Point(13, 34);
    content_lb.Name = "content_lb";
    content_lb.Size = new Size(46, 12);
    content_lb.TabIndex = 1;
    content_lb.Text = "content";
    // 
    // title_lb
    // 
    title_lb.AutoSize = true;
    title_lb.Location = new Point(13, 11);
    title_lb.Name = "title_lb";
    title_lb.Size = new Size(24, 12);
    title_lb.TabIndex = 0;
    title_lb.Text = "title";
    // 
    // checkBox1
    // 
    checkBox1.AutoSize = true;
    checkBox1.Location = new Point(147, 106);
    checkBox1.Name = "checkBox1";
    checkBox1.Size = new Size(48, 16);
    checkBox1.TabIndex = 6;
    checkBox1.Text = "완료";
    checkBox1.UseVisualStyleBackColor = true;


    if (evenOdd % 2 == 0)
        panel4.BackColor = Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
    else
        panel4.BackColor = Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(224)))), ((int)(((byte)(192)))));



    // 
    // panel4
    // 
    panel4.BackColor = SystemColors.Info;
    panel4.Controls.Add(checkBox1);
    panel4.Controls.Add(finish_lb_value);
    panel4.Controls.Add(content_lb_value);
    panel4.Controls.Add(title_lb_value);
    panel4.Controls.Add(finish_lb);
    panel4.Controls.Add(content_lb);
    panel4.Controls.Add(title_lb);
    panel4.Location = new Point(panelx, panely);
    panel4.Name = "panel4";
    panel4.Size = new Size(270, 220);
    panel4.TabIndex = 1;
    panel4.ResumeLayout(false);
    panel4.PerformLayout();

    this.panel1.Controls.Add(panel4);
     #endregion