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 :

[Scroll] Cmt toujours scroller sur le usercontrol peut importe le control actif ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut [Scroll] Cmt toujours scroller sur le usercontrol peut importe le control actif ?
    Bjr,

    j'ai un control (une sorte de datagrid) quand elle est active l'Autoscroll ne marche pu sur mon usercontrol

    y a t il un moyen radical pour que peut importe ou se trouve la souris sur mon usercontrol, et bien l'autoscroll soit effectif sur le usercontrol ?


    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 84
    Par défaut
    Ta essayer de récupérer l'event molette up/down et de l'appliquer à la scroll bar du userControl ?

    Par contre ça risque de scroller AUSSI sur le datagrid...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    j'ai essayé ce genre d'astuce mais ca marche pas:

    protected override Point ScrollToControl(Control activeControl)
    {
    return this.AutoScrollPosition;
    }


    je ne sais pas si c est possible de capturer directement la roulette quand la souris est au dessu du usercontrol et de dire de scroller sur la scrollbar du usercontrol....

    en fait je n'aimerais pas pour chaque control rediriger l evenenement.... c est pas mal de boulot, enfin si y a mieux je prend, jvais deja tester

    merci

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Parait-il que dans GDI/Windows, c est le parent qui recoit l'event avant l'enfant...

    Mais j'ai pas trouve comment faire pour capturer ca...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    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
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
                if (m.HWnd != this.Handle)
                {
                    return;
                }
                Debug.WriteLine(m.ToString());
                switch (m.Msg)
                {
                    case Win32Messages.WM_MOUSEHWHEEL:
                        break;
                    default:
                        break;
     
                }
            }
     
            abstract class Win32Messages
            {
                public const int WM_MOUSEHWHEEL = 0x020A;
            }

    jvais essayer d intercepter le scroll ainsi et le devier vers le la scrollbar...

    je vous dirais si ca marche...


    src:
    http://www.philosophicalgeek.com/200...crolling-in-c/

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    la soluce du post precedent marche pas visiblement l enfant consomme avant le parent

    celle ci par contre marche du tonnerre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ultraGrid1.MouseWheel += new MouseEventHandler(MouseWheelHandler);
     
            private void MouseWheelHandler(object sender, MouseEventArgs e)
            {
                int scrollPos = this.VerticalScroll.Value - e.Delta;
     
                if (scrollPos < this.VerticalScroll.Minimum)
                    this.VerticalScroll.Value = this.VerticalScroll.Minimum;
                else if (scrollPos > this.VerticalScroll.Maximum)
                    this.VerticalScroll.Value = this.VerticalScroll.Maximum;
                else
                    this.VerticalScroll.Value = scrollPos;
            }

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

Discussions similaires

  1. Ajouter un événement sur un UserControl
    Par jbourgeais dans le forum ASP.NET
    Réponses: 23
    Dernier message: 23/01/2007, 10h06
  2. Question sur les usercontrols et la dll generee
    Par fripon dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/01/2007, 11h42
  3. [C#]Ajouter un événement sur un UserControl
    Par jbourgeais dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/01/2007, 19h20
  4. Réponses: 1
    Dernier message: 23/08/2006, 11h38
  5. Réponses: 3
    Dernier message: 26/05/2006, 00h06

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