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 :

Problème gestion évènement sur MicroFramework


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut Problème gestion évènement sur MicroFramework
    Bonjour à tous,

    J'utilise la technologie MicroFramework dans le cadre d'un projet pour mon IUT. Nous développons sur la carte de chez GHI, Embedded Master.
    Je dois créer des IHMs pour cette carte, et je suis parti d'un projet déjà existant. Vous pouvez le trouver ici : http://www.megaupload.com/?d=ZP4JF7JD

    Dans ce code, j'ai essayé dans le fichier Program.cs au niveau de la fonction SetDisplayParametersForTargetImages, de faire un switch de ce type :

    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
    for (Int32 i = 0; i < Targets.numberOfTargetButtons; i++)
    				{
    					myTargetButtons[i] = new TargetButtons(i);
    					myTargetButtons[i].HorizontalAlignment = HorizontalAlignment.Center;
                        switch (i)
                        {
                            case 1: myTargetButtons[1].onTargetButtonTouch += new TargetButtons.ButtonTouchedHandler(Program_onTargetButtonTouch_TV);
                                break;
                            case 2: myTargetButtons[2].onTargetButtonTouch += new TargetButtons.ButtonTouchedHandler(Program_onTargetButtonTouch_DVD);
                                break;
                            case 3: myTargetButtons[3].onTargetButtonTouch += new TargetButtons.ButtonTouchedHandler(Program_onTargetButtonTouch_HIFI);
                                break;
                            case 4: myTargetButtons[4].onTargetButtonTouch += new TargetButtons.ButtonTouchedHandler(Program_onTargetButtonTouch_WIFI);
                                break;
                            case 5: myTargetButtons[5].onTargetButtonTouch += new TargetButtons.ButtonTouchedHandler(Program_onTargetButtonTouch_CONF);
                                break;
                        }
    					myTargetButtons[i].SetMargin(horizontalSpacing, topMargin, horizontalSpacing, captionSpacing);
    					myTargetButtons[i].VerticalAlignment = VerticalAlignment.Top;
    					myTargetButtons[i].Width = 64;
    				}			[...]
    Ensuite, dans l'envenement Program_onTargetButtonTouch_TV par exemple, j'essaye de créer une nouvelle fenêtre :

    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
    private void Program_onTargetButtonTouch_TV(Int32 targetButtonNumber)
            {
     
                try
                {
                    ClearStatusText();
                    targetTypeSelected = myTarget.targetType[targetButtonNumber];
                    targetButtonSelected = targetButtonNumber;
                    AddStatusText(myTarget.targetType[targetButtonNumber], displayFont, textColor, true);
                    AddStatusText(" ", displayFont, textColor, true);
     
                    try
                    {
                        myProgram = new Program();
                        Window fenetreSecondaire = myProgram.CreateWindowTV();
                        myProgram.myDataStorage.Initialize();
                        Touch.Initialize(myProgram);
                        myProgram.Run(fenetreSecondaire);
                    }
                    catch (Exception ex)
                    {
                        Debug.Print(ex.Message);
                    }
     
                }
                catch (Exception ex)
                {
                    Debug.Print(ex.Message);
                }
            }
     
            private Window CreateWindowTV()
            {
                {
                    try
                    {
                        fenetreSecondaire = new Window();
                        fenetreSecondaire.Height = SystemMetrics.ScreenHeight;
                        fenetreSecondaire.Width = SystemMetrics.ScreenWidth;
     
                        fenetreSecondaire.Visibility = Visibility.Visible;
                        fenetreSecondaire.Dispatcher.Thread.Priority = System.Threading.ThreadPriority.Highest;
                        fenetreSecondaire.Background = new SolidColorBrush(Color.Black);
     
                        SetDisplayParametersForTargetImages();
     
                        PlaceItemsInPanelsTV();
                        fenetreSecondaire.Child = panelSecondaire;
     
                        return fenetreSecondaire;
                    }
                    catch (Exception ex)
                    {
                        Debug.Print(ex.Message);
                        return mainWindow;
                    }
                }
            }
     
            private void PlaceItemsInPanelsTV()
            {
                try
                {
                    // Add a button and label in each target StackPanel.
     
                    target1.Children.Add(myTargetButtons[0]);
                    target1.Children.Add(targetLabels[0]);
                    target1.Children.Add(targetCount[0]);
                    // The target StackPanels reside within the imagePanel Stackpanel.				
     
                    imagePanel.Children.Add(target1);
                    statusPanel.Children.Add(statusText);
     
                    undoPanel.Children.Add(myUndoButton);
                    undoPanel.Children.Add(undoText);
     
                    // Add the StackPanels to the main panel.	
                    // The order is critical.
     
                    panelSecondaire.Children.Add(statusPanel);
                    panelSecondaire.Children.Add(imagePanel);
                    panelSecondaire.Children.Add(undoPanel);
                }
                catch (Exception ex)
                {
                    Debug.Print(ex.Message);
                }
            }
    Le problème est que, à l'essai, rien ne se passe, et je n'ai pas de nouvelle fenêtre qui apparait avec un bouton a l'intérieur.

    Voyez vous une solution ?

    Je vous faire suivre le code que j'ai fait : http://www.megaupload.com/?d=6X29ZPQ0


    Merci à tout ceux qui prendront le temps de regarder ça



    Sylvanocry

  2. #2
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Salut,
    il manquerait pas le fenetreSecondaire.show() tout simplement ?

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 96
    Par défaut
    Non, ce n'est pas utilisé de cette façon pour la fenêtre principale . Il me semble que la ligne suffit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fenetreSecondaire.Visibility = Visibility.Visible;

    J'y ai passé encore la journée. Je n'ai toujours pas trouvé.

    Merci d'avoir pris du temps pour ça

Discussions similaires

  1. [Débutant] Problème de gestion événements sur tableau de controles.
    Par Jeano81 dans le forum VB.NET
    Réponses: 15
    Dernier message: 19/02/2015, 11h44
  2. [AC-2007] Problème d'évènement sur image
    Par warback dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/11/2009, 21h33
  3. Problème d'évènement sur un bouton
    Par Rmodevv dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 13/01/2009, 14h37
  4. Problème d'événements sur un composant TChart
    Par 3nTiC dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/07/2006, 16h26
  5. Problèmes d'évènements sur ComboBox
    Par bakaneko dans le forum MFC
    Réponses: 3
    Dernier message: 23/02/2004, 08h46

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