Как автоматически назначать даты кнопкам - PullRequest
0 голосов
/ 20 марта 2012

У меня есть форма, в которой 90 кнопок, по одной на каждый день. Когда пользователь впервые входит в программу, он вводит свое имя пользователя и дату. Я хочу взять дату, которую ввел пользователь, и автоматически заполнить текстовые поля каждой кнопки. Например, текст для btnDay1 будет 18 марта, btnDay2 будет 19 марта и т. Д. И т. Д.

Кто-то предложил использовать этот код:

DateTime time = dateTimepicker1.Value; //this is user selected date, you can use your own way
foreach(Button b in this.Controls.OfType<Button>())
{
    if(b.Name != "button1" || b.Name != "button2")
    {
         b.Text = time.Date.ToString("dd MMM");
         time = time.Date.AddDays(1); //setting for next button        
    }
}

но компилятор говорит мне, что dateTimepicker1 не существует в его текущем контенте. Я никогда не использовал dateTimepicker, и его нет в моем учебнике, поэтому я не знаю, как его использовать. Я посмотрел на библиотеку MSDN, но пример там настолько отличается от DateTime time = dateTimepicker1.Value, что все, что он делает, это оставляет меня более запутанным, чем я был раньше.

1 Ответ

0 голосов
/ 20 марта 2012

если у вас есть текстовое поле для ввода данных от пользователя, то

DateTime time = DateTime.Parse(txtStartDate.Text); 
    foreach(Button b in this.Controls.OfType<Button>())
    {
        if(b.Name != "button1" || b.Name != "button2")
        {
             b.Text = time.Date.ToString("dd MMM");
             time = time.Date.AddDays(1); //setting for next button        
        }
    }

Ожидается, что у вас есть две кнопки button1 и button2, которых следует избегать.

Чтобы сделать интерфейс лучше, вы можете поставить вместо текстового поля указатель даты и изменить его имя на dateTimepicker1 и использовать свой код в вопросе.

...