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

Windows Forms Discussion :

[C#][PropertyGrid] Stopper une actualisation.


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de AdriM
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut [C#][PropertyGrid] Stopper une actualisation.
    Salut,

    Je viens de créer un PropertyPad personalisé qui doit m'aficher quelques propriétés d'un element selectionné dans un arbre. Celui change toute les demis secondes.

    Ma PropertyPad s'actualise a chaque changement de l'element selectionné. Ce que je voudrais maintenant faire, c'est au moment d'editer une propriété dans la PropertyGrid, je voudrais stopper l'actualisation, pour pouvoir editer tranquillement.

    Je pensais m'enregistré a l'event Property.MouseClick += new MouseEventHandler(GridGotFocusHandler); mais je ne reçois jamais cet evenement.

    Une idée pour faire cela?

    PS: Ci-dessous mon code, ou je me registre a l'event et le traitement que je veux donner.

    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
            /// <summary>
            /// Public Constructor.
            /// Create new Property Pad based on #develop, which display the Application.SelectedNodes.
            /// </summary>
            public NodePropertyPad()
            {
                _instance = this;
                _panel = new Panel();
     
                _grid = new PropertyGrid();
                _grid.PropertySort = PropertyService.Get("FormsDesigner.DesignerOptions.PropertyGridSortAlphabetical", false) ? PropertySort.Alphabetical : PropertySort.CategorizedAlphabetical;
                _grid.Dock = DockStyle.Fill;
     
                _grid.MouseClick += new MouseEventHandler(GridGotFocusHandler); 
     
                if (Application.Instance.SelectedNodes.Count != 0)
                    _grid.SelectedObject = Application.Instance.SelectedNodes[0];
     
                Application.Instance.SelectedNodesChanged += new EventHandler(SelectedNodesChangedHandler);
                _comboBox = new ComboBox();
                _comboBox.Dock = DockStyle.Top;
                _comboBox.DropDownStyle = ComboBoxStyle.DropDownList;
                _comboBox.DrawMode = DrawMode.OwnerDrawFixed;
                _comboBox.Sorted = true;
     
                _comboBox.DrawItem += new DrawItemEventHandler(ComboBoxDrawItem);
                _comboBox.MeasureItem += new MeasureItemEventHandler(ComboBoxMeasureItem);
     
                _panel.Controls.Add(_grid);
                _panel.Controls.Add(_comboBox);
            }
     
            void GridGotFocusHandler(object sender, EventArgs e)
            {
                _grid.SuspendLayout();
                Application.Instance.SelectedNodesChanged -= new EventHandler(SelectedNodesChangedHandler);
            }

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    ??? Pk ne pas utiliser le controle PropertyGrid du FramerWork ???
    A moins qu'il ne soit réservé au .Net 2.0, j'avoue ne pas comprendre.

  3. #3
    Membre confirmé Avatar de AdriM
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    J'utilise le PropertyGrid du Framework, j'additionne a peine qques fonctions au property Pad qui le reçois...

    Je penses avoir trouvé un semblant de solution, j'enregistrais le mauvais event. C'est plutot SelectedGridItemChanged apparament...

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Tu utilise Control.SuspendLayout...
    Ok mais n'oublie pas de relancer le Layout après...
    (Il me semble du moins qu'il faut le faire... mais je peux me tromper)

  5. #5
    Membre confirmé Avatar de AdriM
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    Merci de ton aide... c'etait ça, je viens de trouver.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 08/11/2006, 23h34
  2. lancer une actualisation
    Par chateau64 dans le forum JSF
    Réponses: 3
    Dernier message: 19/07/2006, 16h36
  3. [FLASH 8] Stopper une transition
    Par chienlou dans le forum Flash
    Réponses: 7
    Dernier message: 07/06/2006, 14h00
  4. stopper une boucle en attendant un evenement
    Par Psykorel dans le forum Langage
    Réponses: 4
    Dernier message: 08/01/2006, 23h08
  5. [vbexcel]Comment stopper une macro sans la planter.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/11/2005, 14h45

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