0

私はプログラミングが初めてで、自分が何をしているのかよくわかりません。C# の WindowsForm でカレンダーを複製しようとしています。私は TableLayoutPanel(6x7) から始めました。テーブル レイアウト パネルの各セルに通常のパネルを追加しました。通常のパネル内に、ラベルとリストボックスがあります。ラベルに int day を入れたい。ハードコーディングしたくありません。そして、次の月に移動するときにラベルが適切に変更されるようにします。どうすればこれを達成できますか?

レイアウトの写真は次のとおりです。

例

だから私はグループでこれをやっています、そして以下は私のグループメイトの一人が思いついたものです. 2013 年 12 月と 2014 年 6 月を除いて、ラベルに適切に入力されます。何が原因でしょうか? これは物事の正しい方法ですか?

` private void dtpMonthTab_ValueChanged(object sender, EventArgs e)
    {
        this.setCal();
    }

    private void setCal()
    {


        DateTime now = dtpMonthTab.Value;
        int month = now.Month;
        int year = now.Year;
        DateTime startmonth = new DateTime(year, month, 1);


        DayOfWeek dow = startmonth.DayOfWeek;
        int daynumber = (int)dow;
        //MessageBox.Show(" testing: " + dow + daynumber);

        switch (daynumber)
        {
            case 0:
                //MessageBox.Show("The number is zero!");
                startmonth = startmonth.AddDays(-6);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 1:
                //MessageBox.Show("The number is one!");
                startmonth = startmonth.AddDays(-1);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 2:
                //MessageBox.Show("The number is 2!");
                startmonth = startmonth.AddDays(-2);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 3:
                //MessageBox.Show("The number is 3!");
                startmonth = startmonth.AddDays(-3);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 4:
                //MessageBox.Show("The number is 4!");
                startmonth = startmonth.AddDays(-4);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 5:
                //MessageBox.Show("The number is 5!");
                startmonth = startmonth.AddDays(-5);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            case 6:
                //MessageBox.Show("The number is 6!");
                startmonth = startmonth.AddDays(-6);
                label1.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label2.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label3.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label4.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label5.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label6.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                label7.Text = String.Format("{0:dd}", startmonth);
                startmonth = startmonth.AddDays(1);
                break;
            default:
                MessageBox.Show("I'm sorry, I don't understand that!");
                break;

        }

        label8.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label9.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label10.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label11.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label12.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label13.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label14.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label15.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label16.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label17.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label18.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label19.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label20.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label21.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label22.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label23.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label24.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label25.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label26.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label27.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label28.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label29.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label30.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label31.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label32.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label33.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label34.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label35.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label36.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label37.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label38.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label39.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label40.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label41.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);

        label42.Text = String.Format("{0:dd}", startmonth);
        startmonth = startmonth.AddDays(1);
    } ` 
4

1 に答える 1