Вход в форму в разное время дня делает разные события

В моем приложении C# windows form у меня есть webBrowser и много кнопок, 2 таймера и другие вещи. Моя форма регистрирует меня на моем сайте колледжа, и у меня есть несколько классов в течение недели, в моей форме есть часы и кнопки, которые я нажимаю, чтобы перейти к каждому из моих предметов в колледже. Я хочу дать свою форму, чтобы знать, который час и выполнить соответствующую кнопку класса колледжа для этого времени дня. Так, например, если я запускаю свою форму в понедельник в 9 утра, она регистрирует меня в ней и выполняет button1.PerformClick();, который переводит меня в OHS и говорит, что если я начну свою форму во вторник, например, в 13:00, он войдет в систему и нажмет кнопку button2.PerformClick();, что приведет меня к другой теме и т. д. Мои часы форм работают отлично, и мой логин работает отлично, и мои кнопки, которые идут на занятия в колледже, работают, но теперь я хочу автоматизировать их. Запустив форму, в которой я сделал автоматический вход в систему, но как теперь я могу узнать, в какое время и день в форме, и button.perform Нажмите нужную мне кнопку в тот день? Я даже не уверен, что искать или если это возможно, пожалуйста, ответьте.

1 ответ

Решение

Ну, есть несколько способов сделать это. Поскольку вы хотите, чтобы это было сделано при запуске приложения, я бы сделал что-то вроде этого:

var now = DateTime.Now;
if (now.DayOfWeek == DayOfWeek.Monday)
{
    if (now.Hour >= 9 && now.Hour <= 12)
    {
         LoadOhsPage();
    }
    else if (now.Hour > 12 && now.Hour <= 16)
    {
        LoadSomeOtherPage();
    }
    // ...and so on...
}
else if (now.DayOfWeek == DayOfWeek.Tuesday)
{
     // ...similar to above...
}
// ...and so on...

Вы могли бы сделать все Timer автоматизация как Psychemaster предложил, но это автоматизирует вещи, пока вы используете программу, и я не думаю, что вы хотите, чтобы она пыталась загрузить другую страницу, пока вы работаете над чем-то. В качестве альтернативы, вы могли бы реализовать это Timer, но также включите уведомление где-нибудь на странице, сообщающее, что пришло время для другого класса, чтобы вы могли щелкнуть по нему, когда закончите с текущей задачей. Если вы решили пойти по этому пути, Timer автоматизация не проста, и вы можете узнать больше на MSDN (прокрутите вниз для примера).

На случай, если эта ссылка не работает, вот небольшой пример кода:

var appTimer = new Timer();

appTimer.Interval = 3600000; // 1 hour, alternatively 1800000 would be 30 minutes.
appTimer.Tick += new EventHandler(CheckDateTime);
appTimer.Start();

private void CheckDateTime(Object obj, EventArgs args)
{
    // Similarly to the first code, check the day of the week and the hour of the day;
    // then perform an appropriate action, such as notifying the user that it's time
    // to work on something else.  This is a better approach than forcing them to change
    // pages.
}
Другие вопросы по тегам