IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

déclencher un évènement C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 23
    Points : 14
    Points
    14
    Par défaut déclencher un évènement C#
    Bonjour tout le monde,
    Je suis entrain de programmer un add-in Project à l'aide de VS 2010 en C#, et je me suis bloqué dans le codage d'un évènement qui affiche un messageBox après le changement du nom du "task" en "changer"(voir code).
    mon code ouvre un projet puis ajoute un "task" automatiquement mais il ne lance pas l'évennement lorsque je modifie les caractéristiques d'une tache.je ne sais pas la cause.Voila mon code.
    PS:le déboggage se fais avec succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     public partial class ThisAddIn
        {
            void Application_NewProject(Microsoft.Office.Interop.MSProject.Project pj)
            {
                MSProject.Task newTask = pj.Tasks.Add("This text was added by using code", missing);
                newTask.Start = DateTime.Now;
                newTask.Duration = "3";
     
            }
     
     
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
     
     
                this.Application.NewProject += new Microsoft.Office.Interop.MSProject._EProjectApp2_NewProjectEventHandler(Application_NewProject);
     
     
            }
     
            private void ProjApp_ProjectBeforeTaskChange(Task tsk, Boolean cancel)
            {
     
                this.Application.ProjectBeforeTaskChange += new _EProjectApp2_ProjectBeforeTaskChangeEventHandler(Application_ProjectBeforeTaskChange);
            }
     
            void Application_ProjectBeforeTaskChange(Task tsk, PjField Field, object NewVal, ref bool Cancel)
            {
                if (tsk.Name == "changer")  
    MessageBox.Show("voulez vous continuer??");
                Cancel = true;
     
     
            }
     
     
     
        }
     
    }
    Merci pour votre aide

  2. #2
    Membre habitué Avatar de zhouyu
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Points : 143
    Points
    143
    Par défaut
    Je ne connais pas la programation de add-in mais il y a truc que je trouve louche ^^.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private void ProjApp_ProjectBeforeTaskChange(Task tsk, Boolean cancel)
    { 
      this.Application.ProjectBeforeTaskChange += new  _EProjectApp2_ProjectBeforeTaskChangeEventHandler(Application_ProjectBeforeTaskChange);
    }
    Je suppose que c'est un event quand tu changes une tâche de ton projet.
    Tu ne fais que mettre à jour un autre event mais est-ce que this.Application.ProjectBeforeTaskChange lui est appelé?

    Dans ton debug vérifie si tu passes par ProjApp_ProjectBeforeTaskChange et par Application_ProjectBeforeTaskChange dans ton application .

    Pourquoi tu ne mets pas directement dans le constructeur la mis à jour des callbacks au lieu de mettre ça dans une fonction callback justement ?
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ThisAddin()
    {
      this.Application.NewProject += new Microsoft.Office.Interop.MSProject._EProjectApp2_NewProjectEventHandler(Application_NewProject);
      this.Application.ProjectBeforeTaskChange += new _EProjectApp2_ProjectBeforeTaskChangeEventHandler(Application_ProjectBeforeTaskChange);
      //le reste du code...
    }

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/10/2006, 16h07
  2. VC# -Déclencher un évènement par le programme
    Par epc dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/10/2006, 13h47
  3. FAQ : Comment déclencher un évènement à l'aide d'un script?
    Par vny dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/02/2006, 16h53
  4. Réponses: 13
    Dernier message: 21/12/2005, 16h18
  5. [JLabel] Déclencher un évènement manuel
    Par barbu0055 dans le forum Composants
    Réponses: 1
    Dernier message: 10/08/2005, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo