注册 登录
编程论坛 C# 论坛

这个程序错哪里,为什么comboBox1里只有29项

别忘了当初 发布于 2019-09-04 12:03, 5952 次点击
using System;
using System.Collections.Generic;
using
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 选择日期02275
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("今天是"+comboBox3.Text+"年"+comboBox2.Text+"月"+comboBox1.Text+"日");
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            int i,a,b;

            for (i = 1000; i <= 2050; i++)
            {
                comboBox3.Items.Add(i);
            }
            for (a = 1; a <=12; a++)
            {
                comboBox2.Items.Add(a);
            }
            switch (a)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    for (b = 0; b <= 31; b++)
                    {
                            comboBox1.Items.Add(b);
                    }
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                   for (b = 0; b <= 30; b++)
                   {
                        comboBox1.Items.Add(b);
                   }
                   break;
                default:
                case 2:
                    if (i % 4 == 0)
                    {
                        for (b = 0; b <= 28; b++)
                        {
                            comboBox1.Items.Add(b);
                        }
                    }
                    else
                    {
                        for (b = 0; b <= 29; b++)
                        {
                            comboBox1.Items.Add(b);
                        }
                    }

                    break;
            }
        }
    }
}
5 回复
#2
zbjzbj2019-09-16 14:47
switch (a)//运行到这时,a=13
#3
zbjzbj2019-09-16 14:48
switch (a)//运行到这时a=13
#4
沉默的痞子2019-09-16 15:25
我试过了啊,程序没问题,0-29  不就是30项吗?   
只有本站会员才能查看附件,请 登录
#5
sunqian66112019-09-24 08:43
for 循环从从0还是1开始,for 条件带不带等于号
#6
aquariuszb2019-12-30 13:24
你要在combox1里面显示日期,1-30,1-31,1-28,1-29
就直接for(i=1,i<=30(或者31,28,29),combox里面就显示从1开始

你混淆的应该是combox的index  你显示1的item的index是0,显示30的item的index是29

这2个别混了,你的b是日期,不要有0
1