J'ai ajouté quelques fonctionnalités supplémentaires à un projet Coding4Fun. J'ai mon projet mis en place avec une option supplémentaire pour lui permettre de changer automatiquement l'arrière-plan après X quantité de temps. X est défini à partir d'un ComboBox. Cependant, je sais que je l'ai fait d'une manière terrible, comme j'ai créé une nouvelle classe minuterie avec System.Timers.Timer en tant que parent ainsi quand la méthode statique dans le ElapsedEventHandler est appelée, je suis en mesure de revenir à le formulaire et appelez ChangeDesktopBackground().Minuterie sur le papier peint Cycler
Quelle est une meilleure façon d'appeler ChangeDesktopBackground() à un intervalle défini par l'utilisateur?
Voici ma solution actuelle, qui consiste à transformer l'expéditeur en mon horodateur hérité, qui obtient alors une référence au formulaire, qui appelle ensuite la méthode ChangeDesktopBackground.
private static void timerEvent(object sender, System.Timers.ElapsedEventArgs e)
{
((newTimer)sender).getCycleSettingsForm().ChangeDesktopBackground();
}
Edit: exemple de codage Ajouté à montrer solution actuelle