Вход в форму в разное время дня делает разные события
В моем приложении 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.
}