Программирование выпадающих списков - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! На форме три выпадающих списка: день, месяц, год. Изменение любого из списков меняет содержимое остальных списков. Например, в феврале максимальное количество дней 28 или 29 в високосный год. В некоторых месяцах 31 день, а в других - 30.

Решение задачи: «Программирование выпадающих списков»

textual
Листинг программы
using System;
using System.Windows.Forms;
 
namespace WinForms
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
            DateTime dtNow = DateTime.Now;
            SetDayOfMonth(dtNow);
            InintializeMonth();
            SetMonth(dtNow);
            comboBoxMonth.SelectedIndexChanged += new EventHandler(comboBoxMonth_SelectedIndexChanged);
        }
 
        void comboBoxMonth_SelectedIndexChanged(object sender, EventArgs e)
        {
            DateTime dtNow = DateTime.Now;
            int daysInMonth = DateTime.DaysInMonth(dtNow.Year, comboBoxMonth.SelectedIndex + 1);
            int selectedDay = dtNow.Day < daysInMonth ? dtNow.Day : daysInMonth;
            SetDayOfMonth(new DateTime(dtNow.Year, comboBoxMonth.SelectedIndex + 1, selectedDay));
        }
 
        private void SetDayOfMonth(DateTime dateTime)
        {
            int quantityDays = DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
            int offset = 1;
            int quantityIterations = quantityDays + offset;
            comboBoxDay.Items.Clear();
            for (int i = offset; i < quantityIterations; i++)
                comboBoxDay.Items.Add(i < 10 ? "0" + i.ToString() : i.ToString());
            comboBoxDay.SelectedIndex = dateTime.Day - offset;
        }
 
        public void InintializeMonth()
        {
            string[] monthes = {
                "january", "february", "march", "april", "may", "june", "july",
                "august", "september", "october", "november", "december" };
            for (int i = 0; i < monthes.Length; i++)
                comboBoxMonth.Items.Add(monthes[i]);
        }
 
        public void SetMonth(DateTime dateTime)
        {
            comboBoxMonth.SelectedIndex = dateTime.Month - 1;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.857 из 5
Похожие ответы