7
votes

C # Actualiser un formulaire Windows

J'ai une forme Windows qui doit être actualisée automatiquement sans utiliser de bouton pour rafraîchir le formulaire.

J'utilise maintenant un bouton pour rafraîchir le formulaire. Mais j'ai besoin du formulaire pour se rafraîchir automatiquement pour chaque minute.

Il est possible de faire dans l'application Formulaire Windows.


1 commentaires

Référez-vous Stackoverflow.com/Questtions/5396282/Auto -Refresh-in-asp-net-mvc pour asp.net ou référez Stackoverflow.com/Questtions/5371857/... pour WPF. Si vous souhaitez personnaliser, vous pouvez utiliser la minuterie pour déclencher Autorefresh


5 Réponses :


1
votes

Utilisez un contrôle de la minuterie et définissez l'intervalle que 60 * 1000 ms (1 min) et dans l'événement TICK, utilisez le code pour actualiser le formulaire.


0 commentaires

5
votes

Je ne sais pas pourquoi vous devez actualiser un formulaire, mais mettez le code que vous avez derrière le bouton dans un événement de minuterie. Vous avez déjà le code, alors créez simplement une minuterie, définissez-la pour la longueur souhaitée et activez-la.

Voici le code dont vous avez besoin: p>

  Timer myTimer = new Timer();
  myTimer.Elapsed += new ElapsedEventHandler( TimeUp );
  myTimer.Interval = 1000;
  myTimer.Start();

public static void TimeUp( object source, ElapsedEventArgs e )
{
    //Your code here
}


6 commentaires

Je pense que ce que l'OP signifiait était d'actualiser certaines données sur une forme.


Ne recommandez pas System.Timers.Timer, car il cache des erreurs (toutes les exceptions non manquées seront ignorées en silence). System.threading.Timer de MSDN: Dans la version 2.0NET Framework version 2.0 et antérieure, le composant de la minuterie attire et supprime toutes les exceptions projetées par des gestionnaires d'événements pour l'événement écoulé. Ce comportement est sujet à changement dans les versions futures du .NET Framework. Cela ne dit pas si cela a été changé encore ou non.


Merci de votre réponse


@Bharathi - Les quatre premières lignes doivent être dans une méthode. Habituellement, il est dans la méthode de form_load ou quelle que soit la méthode exécutée lorsque le formulaire démarre.


J'ai ajouté les quatre premières lignes au formulaire de charge.Within the Public Static Void TimeUp (Source d'objet, ELAPSEDEventargs e) {getdata ();}. Dans cette getdata obtiendra les données de la base de données.Once ajoutez cette méthode getdata à l'heure UP est indique que l'erreur 1 est une référence d'objet est requise pour le champ, la méthode ou la propriété non statique ».Even que j'ai essayé en supprimant statique, cela ne fonctionne pas.


J'ai créé un objet et j'ai appelé la méthode getdata.mais toujours ce qui ne fonctionne pas



2
votes

Vous pouvez ajouter une minuterie au formulaire et l'activer sur Form_Load. Définissez la valeur de la minuterie en millisecondes sur 60000. Dans la fonction Timer_Tick, vous pouvez mettre le code destiné à rafraîchir.


0 commentaires


0
votes

ces fonctionne! Étape par étape:

  1. Ajouter une minuterie à votre formulaire
  2. Définissez la valeur ( Intervalle ) à 1000
  3. Double-cliquez sur le formulaire
  4. Tapez ceci pour form_load:

    Timer1.Start (); // Définissez votre nom de minuterie au lieu de "Timer1"

  5. double-cliquez sur la minuterie et tapez ceci pour Timer_Tick:

    this.refresh ();


0 commentaires