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#] comment lier les ascenseurs de deux datagrids ??


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut [C#] comment lier les ascenseurs de deux datagrids ??
    Bonjour à tous,

    je travaille sur une winform en C# et je voudrais faire la chose suivante :

    mon interface est composée de deux datagrids qui contiennent des données liées : chaque ligne du premier correspond à la même ligne dans le second. Ma question : lorsque je navigue dans les lignes du premiers datagrid à l'aide de l'ascenseur vertical, je voudrais que l'ascenseur vertival du second datagrid descende de la même façon de façon. Comment faire pour les lier ??

    merci d'avance

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    en fait ce n'est pas que tu les lies
    mais plutôt que le scroll chez l'un déclenche le réaffichage du second
    entre autres en repositionnant le select
    neguib

    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformsdatagridclassscrolltopic.asp

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    ok merci pour le lien ... tu pourrais éventuellement me donner un bout de code STP

    merci d'avance

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par mbibim63
    ok merci pour le lien ... tu pourrais éventuellement me donner un bout de code STP

    merci d'avance
    pas le temps fini pour aujourdhui peut être demain

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    bonjour,

    ca y est demain on est ... alors un chti bout de code tu pourrais me passer ?

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tu sais je dois m'occuper de mes propres codes
    c'est mon boulot alors passez du temps à en faire pour les autres
    Bon je résume
    • 1. assoscié l'evenement scroll à ta datagrid1 çà le lien d'hier te donne le code
      2. dans cet evenement récupérer la scrollbar vertical de ta datagrid1 et sa position
      http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfSystemWindowsFormsDataGridClassVertScrollBarTopic.asp
      3. recuperer idem pour datagrid2 et lui imposer la position de 1

    tu vois c'est pas un petit bout de code
    alors bonne prog
    [/code]

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    merci ...

    c'est effectivement ce que j'essaye de faire depuis hier mais mon problème c'est que la scrollbar vertical du datagrid est innaccessible à cause de son niveau de protection .... c'est quoi la feinte qui m'échape ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    ok ... je crois que je crois que je viens de trouver la feinte.

    En te remerciant pour ton aide

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    après avoir résolu le problème précédent en faisant hériter la classe datagrid .NET, un nouveau problème se pose à moi :

    j'ai beau bougé la scrollbar de mon datagrid, les coordonnées contenues dans la variable location ne changent donc il est impossible de les réaffecter à l'autre scrollbar. C'est quoi le dilem ?? Elle est ou cette position ?

    HELP HELP

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par mbibim63
    après avoir résolu le problème précédent en faisant hériter la classe datagrid .NET, un nouveau problème se pose à moi :

    j'ai beau bougé la scrollbar de mon datagrid, les coordonnées contenues dans la variable location ne changent donc il est impossible de les réaffecter à l'autre scrollbar. C'est quoi le dilem ?? Elle est ou cette position ?

    HELP HELP
    je crois que ce n'est pas Location mais Value
    http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/cpref/html/frlrfsystemwindowsformsscrollbarclassvaluetopic.asp

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    yes

    c'est cool mes deux scrollbars bougent en même temps ... c'est dlabale

    bon on ne va quand même pas en rester là ... j'ai encore une question

    comment ca se fait que les lignes ne défilent en conséquence dans mon second datagrid ... y'a que la scrollbar qui bouge

    j'ai essayer un refresh() mais c'est pas ca ... une idée ?

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    c'est bizarre parce que le simple fait de cliquer sur la scrollbar du datagrid 2 réactualise l'affichage nikel ... pourquoi refresh() marche pas ?

  13. #13
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par mbibim63
    c'est bizarre parce que le simple fait de cliquer sur la scrollbar du datagrid 2 réactualise l'affichage nikel ... pourquoi refresh() marche pas ?
    et c'est quoi comment que tu refresh()

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    j'ai testé la fonction refresh() sur le datagrid2 et sur la scrollbar du datagrid2 ... j'ai même exécuté Application.DoEvents() mais rien n'y fait

    ... une idée ? merci

  15. #15
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par mbibim63
    j'ai testé la fonction refresh() sur le datagrid2 et sur la scrollbar du datagrid2 ... j'ai même exécuté Application.DoEvents() mais rien n'y fait

    ... une idée ? merci
    et MonFormulaire.refresh()
    (si necessaire combiné avec datagrid2.refresh)

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    j'ai combiné les deux et kif kif ...
    je suis déséspéré
    Chaque problème résolu en amène un nouveau ... HELP HELP

  17. #17
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par mbibim63
    j'ai combiné les deux et kif kif ...
    je suis déséspéré
    Chaque problème résolu en amène un nouveau ... HELP HELP
    ohlà c pas si grave quand même le pb principal est réglé
    maintenant c du détail

  18. #18
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 83
    Points : 107
    Points
    107
    Par défaut
    bonjour,

    il te suffit de dériver un datagrid afin de récupérer la propriete VertScrollBar de ton scrollbar, et ensuite d'utiliser la méthode
    GridVScrolled pour repositionner ton datagrid à l'emplacement voulu.

    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
     
    public class  scrollDataGrid : System.Windows.Forms.DataGrid
    {
           public scrollDataGrid()
    	{
    	}
     
    	public int Position
    	{
    		// Retourne la valeur du scrollbar vertical
    		get{return this.VertScrollBar.Value  ;}
    	}
     
    	public void PositionnerAt(int numLigne)
    	{
    		// Sert à positionner le datagrid 
    		this.GridVScrolled(this,new ScrollEventArgs(ScrollEventType.LargeIncrement,numLigne));
    	}
    }
    Appel dans programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    dataGrid1 = new scrollDataGrid();
    dataGrid2 = new scrollDataGrid();
    ...
    // Sur evenement scroll de DataGrid1
     
    private void dataGrid1_Scroll(object sender, System.EventArgs e)
    {
    	this.dataGrid2.PositionnerAt(this.dataGrid1.Position);
    	this.dataGrid1.Focus();
    }
    ...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 142
    Points : 53
    Points
    53
    Par défaut
    merci mille fois

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 04/06/2008, 17h21
  2. [Etat] graphique, comment lier les données?
    Par pifou25 dans le forum IHM
    Réponses: 1
    Dernier message: 09/06/2006, 16h28
  3. [C#] Comment empecher les modification dans un DataGrid ?
    Par layate dans le forum Windows Forms
    Réponses: 5
    Dernier message: 06/06/2005, 17h11
  4. [DBGRID] Comment enlever les ascenseurs H et V
    Par kase74 dans le forum Bases de données
    Réponses: 6
    Dernier message: 16/09/2004, 18h33

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