Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2010, 19:03   #1
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию Добавить в массив требуемое кол-во элементов, потом создать в ComboBox

Вот пишу программу и не пойму как сделать одну вещь:
Есть форма с кнопкой, при её нажатии появляется вторая форма на ней ComboBox он должен получать количество дней в текущем месяце и создавать такоеже количество итемов. Например месяц "февраль" и в нём 29 дней, комбоБокс при появлении формы очищает свой список и создаёт новый с элементами от 1 до 29 (items[1] = 1, items[2] = 2... items[29] = 29 (это не код, а просто объяснение мысли)), если в месяце 31 день, то он создаёт 31 элемент от 1 до 31.

Код:
        private static void SetDayOfMonth(DateTime dateTime, ref ComboBox CbDay)
        {
            byte QuantityDays = 0;
            QuantityDays = (byte) DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
            CbDay.Items.Clear();
            string[] ItmesInComboBox = new string[] {"00", "01", "02"}; // тут создаётся 3 элемента чисто для примера
            CbDay.Items.AddRange()
        }
Вот примерно, что я хочу осуществить, но что-то не пойму как например создать массив строк из 29 элементов, если в месяце 29 дней или из 30, если 30. Вообще как потом создать ВыпадающийСписок вида:

01
02
03 и т.д.

=================================== =========

Или если это не примитивный способ, то как создать список на основе любого из массивов?
Код:
        private static void SetDayOfMonth(DateTime dateTime, ref ComboBox CbDay)
        {
            byte QuantityDays = 0;
            QuantityDays = (byte) DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
            CbDay.Items.Clear();
            string[] ItmesInComboBox31 = new string[] {"00", "01", "02", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29", "30", "31"};

            string[] ItmesInComboBox30 = new string[] {"00", "01", "02", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29", "30"};

            string[] ItmesInComboBox29 = new string[] {"00", "01", "02", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29"};

            string[] ItmesInComboBox28 = new string[] {"00", "01", "02", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28"};

            CbDay.Items.AddRange()
        }

Последний раз редактировалось Casper-SC; 24.02.2010 в 19:11.
Casper-SC вне форума Ответить с цитированием
Старый 24.02.2010, 19:42   #2
m0nax
Форумчанин
 
Аватар для m0nax
 
Регистрация: 25.09.2009
Сообщений: 525
По умолчанию

а почему нельзя просто в цикле добавить в комбоБокс элементы? например так
Код:
comboBox1.Items.Clear();
for (int i = 1; i <= QuantityDays; ++i)
{
	comboBox1.Items.Add(i);
}
если уж так хочется добавлять сразу массив
Код:
comboBox1.Items.AddRange(ItmesInComboBox28 ); //с другими аналогично

Последний раз редактировалось m0nax; 24.02.2010 в 19:45.
m0nax вне форума Ответить с цитированием
Старый 24.02.2010, 19:56   #3
Casper-SC
Форумчанин
 
Регистрация: 04.07.2007
Сообщений: 549
По умолчанию

Спасибо! Но уже сделал так:

Код:
        /// <summary>
        /// Создаёт список ComboBox с соответствующим количеством элементов
        /// </summary>
        /// <param name="dateTime">Текущая дата</param>
        /// <param name="CbDay">ComboBox который редактируется</param>
        private static void SetDayOfMonth(DateTime dateTime, ref ComboBox CbDay)
        {
            byte QuantityDays = 0;
            QuantityDays = (byte) DateTime.DaysInMonth(dateTime.Year, dateTime.Month);
            CbDay.Items.Clear();
            string[] ItmesInComboBox31 = new string[] {"01", "02", "03", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29", "30", "31"};

            string[] ItmesInComboBox30 = new string[] {"01", "02", "03", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29", "30"};

            string[] ItmesInComboBox29 = new string[] {"01", "02", "03", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28", "29"};

            string[] ItmesInComboBox28 = new string[] {"01", "02", "03", "04", "05", "06", "07", "08", "09",
            "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25",
            "26", "27", "28"};

            switch (QuantityDays)
            {
                case 31:
                    {
                        CbDay.Items.AddRange(ItmesInComboBox31);
                    }
                    break;

                case 30:
                    {
                        CbDay.Items.AddRange(ItmesInComboBox30);
                    }
                    break;

                case 29:
                    {
                        CbDay.Items.AddRange(ItmesInComboBox29);
                    }
                    break;

                case 28:
                    {
                        CbDay.Items.AddRange(ItmesInComboBox28);
                    }
                    break;

            }
        }
Жесть с этими комбобоксами, индекс итема 0, а в нём число 1, пиши преобразование, у меня этих боксов штук 5, все получают параметры и отдают. Вывод 10 функций писать надо.

Я про:

Код:
        /// <summary>
        /// Преобразовывает возвращаемый результат DateTime.Month в подходящий для ComboBox
        /// </summary>
        /// <param name="dateTime">Текущая дата</param>
        /// <returns>Возвращает целое от 0 до 11</returns>
        private static int NumberOfMonth(DateTime dateTime)
        {

            switch (dateTime.Month)
            {
                case 1:
                    return 0;

                case 2:
                    return 1;

                case 3:
                    return 2;

                case 4:
                    return 3;

                case 5:
                    return 4;

                case 6:
                    return 5;

                case 7:
                    return 6;

                case 8:
                    return 7;

                case 9:
                    return 8;

                case 10:
                    return 9;

                case 11:
                    return 10;

                case 12:
                    return 11;

            }
            MessageBox.Show("Выход за пределы NumberDayOfWeek");
            return 0;
        }

Последний раз редактировалось Casper-SC; 24.02.2010 в 20:36.
Casper-SC вне форума Ответить с цитированием
Старый 24.02.2010, 20:05   #4
BOZKURT
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 70
По умолчанию

Код:
            int TotalDays = 31;
            string[] DaysItems = new string[TotalDays];
            for (int i = 0; i < TotalDays; i++)
            {
                string item = "0" + (i + 1).ToString();
                DaysItems[i] = item.Substring(item.Length - 2, item.Length > 2 ? item.Length - 1 : item.Length);
            }
            comboBox1.Items.Clear();
            comboBox1.Items.AddRange(DaysItems);
BOZKURT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить програмно Items в ComboBox bbk_serg Общие вопросы Delphi 2 20.02.2010 21:10
создать массив дробных чисел из 6 элементов Agelka Помощь студентам 3 23.11.2009 16:01
Найти сумму, пр-ние и кол-во элементов массива Zid@ne Общие вопросы C/C++ 4 28.01.2009 19:58
Дан массив из N элементов (чисел),определить количество элементов кратных 3. Woha Общие вопросы C/C++ 2 08.12.2008 13:12
Создать массив только из тех элементов, у которых остаток от деления на М равен L (0<=L<=M-1) Айвенго Microsoft Office Excel 2 12.01.2008 16:28