begin process at 2012 02 17 04:57:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > SCROLL CONTROL USER POUR DÉROULER LES CONTROLES ET ENREGISTRER LES COORDONNÉES.

SCROLL CONTROL USER POUR DÉROULER LES CONTROLES ET ENREGISTRER LES COORDONNÉES.


 Information sur la source

Note :
Aucune note
Catégorie :Control Source .NET ( DotNet ) Classé sous :UserControl, Barre, Defilement, Scroll, Controls Niveau :Débutant Date de création :21/03/2009 Date de mise à jour :13/07/2009 03:29:36 Vu / téléchargé :3 301 / 259

Auteur : Londonic

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Héritier du UserControl il permet de faire défiler aussi bien un WebBrowser qu'une pictureBox.
L'exemple d'utilisation de ce Contrôle user permet de Transformer le Bureau en pupitre de jeu Online: En sauvegardant les paramètres de positionnement des curseurs et les coordonnées d'affichage, on peut limiter et multiplier les points de vue (Faire des fenêtres spécialisées autour des spécificité des pages internet). Si on enregitre les paramètres on peut re-ouvrir la fenêtre exactement comme on a fermé. c'est une version Bêta je vérifie pas si la barre de défilement s'en va  pour un contrôle qui traite une page Webb dont une dimension est plus petite où égale que la fenêtre: peut être il faut effacer la partie qui gère cette éventualité. (m'est arrivé que la barre est aussi longue que la fenêtre aux premiers débuggages, et j'inverse tout le temps x et y quand j'affecte à H ou L.) Je retourne à mon Thread et la quetion de la position au passage en mode plein écran reste en suspens.

Source

  • Public Class Form1
  • Dim Exemple As New Surf '(réserve mémoire dessin page Webb en option)
  • Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
  • Text = "Mon Site rouille"
  • 'Tous les controls de l'exemple dand la fenêtre
  • For Each C As Control In Exemple.Controls : Controls.Add(C) : Next
  • Exemple.init() '(le Site et sa position en option)
  • End Sub
  • End Class
  • Public Class Surf
  • Inherits Form
  • Dim Fly As New WebBrowser
  • Dim Scroller As New Scroll(Fly)
  • Friend Sub New(Optional ByVal Largeur As Single = 1200, _
  • Optional ByVal Hauteur As Single = 1200)
  • Text = "Surf"
  • Fly.SetBounds(0, 0, Largeur, Hauteur) 'Taille de la Page webb
  • Fly.ScrollBarsEnabled = False
  • Controls.Add(Scroller)
  • End Sub
  • Friend Sub init(Optional ByVal Site As String = "http://www.vbfrance.com/", _
  • Optional ByVal XOffset As Single = 870, _
  • Optional ByVal YOffset As Single = 200)
  • Fly.Navigate(Site)
  • Scroller.init(XOffset, YOffset)
  • End Sub
  • End Class
  • Public Class Scroll
  • Inherits UserControl
  • Dim Outil As Control
  • Dim Planche As New Panel
  • Dim WithEvents VBar As New VScrollBar
  • Dim WithEvents HBar As New HScrollBar
  • Dim Cas As Byte = 0
  • Friend Sub Emboite()
  • Dim épaisseur As Single = VBar.Width 'épaisseur standard des barres (Largeur= BL)
  • Dim Largeur As Single = Width 'init Largeur de la planche et de la barre horizontale
  • Dim Hauteur As Single = Height 'init Hauteur de la planche et de la barre verticale
  • Dim U As ScrollBars = ScrollBars.None
  • If Largeur < Outil.Height Then
  • Largeur = Largeur - épaisseur
  • U = ScrollBars.Horizontal
  • Cas = 2
  • End If
  • If Hauteur < Outil.Width Then
  • Hauteur = Hauteur - épaisseur
  • Cas = Cas + 1
  • If Cas = 3 Then U = ScrollBars.Both _
  • Else U = ScrollBars.Vertical
  • End If
  • 'Cas par cas
  • If Cas = 2 Or Cas = 3 Then
  • VBar.SetBounds(Largeur, 0, épaisseur, Hauteur)
  • VBar.Minimum = 0
  • VBar.Maximum = Outil.ClientRectangle.Height - Hauteur + VBar.LargeChange - 1
  • VBar.SmallChange = Hauteur / 5
  • Else
  • End If
  • If Cas = 1 Or Cas = 3 Then
  • HBar.SetBounds(0, Hauteur, Largeur, épaisseur)
  • HBar.Minimum = 0
  • HBar.Maximum = Outil.ClientRectangle.Width - Largeur + HBar.LargeChange - 1
  • HBar.SmallChange = Hauteur / 5
  • End If
  • Planche.SetBounds(0, 0, Largeur, Hauteur)
  • End Sub
  • Friend Sub New(ByVal O As Control)
  • Outil = O
  • Dock = DockStyle.Fill
  • Controls.Add(Planche)
  • Controls.Add(VBar)
  • Controls.Add(HBar)
  • End Sub
  • Friend Sub init(Optional ByVal dx As Integer = System.Math.E, _
  • Optional ByVal dy As Integer = System.Math.E)
  • If dx <> System.Math.E Then
  • If dy = System.Math.E Then dy = Outil.Location.Y
  • Outil.SetBounds(-dx, -dy, Outil.Width, Outil.Height)
  • HBar.Value = dx
  • VBar.Value = dy
  • End If
  • Planche.Controls.Add(Outil) 'épingle l'outil sur la planche
  • Emboite()
  • End Sub
  • Private Sub HBar_Scroll(ByVal eventSender As System.Object, _
  • ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) _
  • Handles HBar.Scroll
  • Outil.Left = -eventArgs.NewValue
  • End Sub
  • Private Sub VBar_Scroll(ByVal eventSender As System.Object, _
  • ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) _
  • Handles VBar.Scroll
  • Outil.Top = -eventArgs.NewValue
  • End Sub
  • Private Sub frmScroll_Resize(ByVal eventSender As System.Object, _
  • ByVal eventArgs As System.EventArgs) Handles Me.Resize
  • Emboite()
  • End Sub
  • End Class
Public Class Form1
    Dim Exemple As New Surf '(réserve mémoire dessin page Webb en option)
    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        Text = "Mon Site rouille"
        'Tous les controls de l'exemple dand la fenêtre
        For Each C As Control In Exemple.Controls : Controls.Add(C) : Next
        Exemple.init() '(le Site et sa position en option)
    End Sub
End Class


Public Class Surf
    Inherits Form
    Dim Fly As New WebBrowser
    Dim Scroller As New Scroll(Fly)
    Friend Sub New(Optional ByVal Largeur As Single = 1200, _
                  Optional ByVal Hauteur As Single = 1200)
        Text = "Surf"
        Fly.SetBounds(0, 0, Largeur, Hauteur) 'Taille de la Page webb
        Fly.ScrollBarsEnabled = False
        Controls.Add(Scroller)
    End Sub
    Friend Sub init(Optional ByVal Site As String = "http://www.vbfrance.com/", _
                    Optional ByVal XOffset As Single = 870, _
                    Optional ByVal YOffset As Single = 200)
        Fly.Navigate(Site)
        Scroller.init(XOffset, YOffset)
    End Sub
End Class


Public Class Scroll
    Inherits UserControl
    Dim Outil As Control
    Dim Planche As New Panel
    Dim WithEvents VBar As New VScrollBar
    Dim WithEvents HBar As New HScrollBar
    Dim Cas As Byte = 0

    Friend Sub Emboite()
        Dim épaisseur As Single = VBar.Width 'épaisseur standard des barres (Largeur= BL)
        Dim Largeur As Single = Width 'init Largeur de la planche et de la barre horizontale
        Dim Hauteur As Single = Height 'init Hauteur de la planche et de la barre verticale
        Dim U As ScrollBars = ScrollBars.None

        If Largeur < Outil.Height Then
            Largeur = Largeur - épaisseur
            U = ScrollBars.Horizontal
            Cas = 2
        End If
        If Hauteur < Outil.Width Then
            Hauteur = Hauteur - épaisseur
            Cas = Cas + 1
            If Cas = 3 Then U = ScrollBars.Both _
            Else U = ScrollBars.Vertical
        End If

        'Cas par cas 
        If Cas = 2 Or Cas = 3 Then
            VBar.SetBounds(Largeur, 0, épaisseur, Hauteur)
            VBar.Minimum = 0
            VBar.Maximum = Outil.ClientRectangle.Height - Hauteur + VBar.LargeChange - 1
            VBar.SmallChange = Hauteur / 5
        Else
        End If
        If Cas = 1 Or Cas = 3 Then
            HBar.SetBounds(0, Hauteur, Largeur, épaisseur)
            HBar.Minimum = 0
            HBar.Maximum = Outil.ClientRectangle.Width - Largeur + HBar.LargeChange - 1
            HBar.SmallChange = Hauteur / 5
        End If
        Planche.SetBounds(0, 0, Largeur, Hauteur)
    End Sub

    Friend Sub New(ByVal O As Control)
        Outil = O
        Dock = DockStyle.Fill
        Controls.Add(Planche)
        Controls.Add(VBar)
        Controls.Add(HBar)
    End Sub

    Friend Sub init(Optional ByVal dx As Integer = System.Math.E, _
                        Optional ByVal dy As Integer = System.Math.E)

        If dx <> System.Math.E Then
            If dy = System.Math.E Then dy = Outil.Location.Y
            Outil.SetBounds(-dx, -dy, Outil.Width, Outil.Height)
            HBar.Value = dx
            VBar.Value = dy
        End If

        Planche.Controls.Add(Outil) 'épingle l'outil sur la planche
        Emboite()
    End Sub

    Private Sub HBar_Scroll(ByVal eventSender As System.Object, _
             ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) _
             Handles HBar.Scroll
        Outil.Left = -eventArgs.NewValue
    End Sub
    Private Sub VBar_Scroll(ByVal eventSender As System.Object, _
                 ByVal eventArgs As System.Windows.Forms.ScrollEventArgs) _
                 Handles VBar.Scroll
        Outil.Top = -eventArgs.NewValue
    End Sub

    Private Sub frmScroll_Resize(ByVal eventSender As System.Object, _
     ByVal eventArgs As System.EventArgs) Handles Me.Resize
        Emboite()
    End Sub

End Class

 Conclusion

Il y a tant de façons de développer l'objet que je limite à l'essentiel.
On a tous remarqué la nouvelle tendance des pages webb à moduler la géomètrie des modules qui les composent au lieu des barres de défilement habituelles. Sans doute comme Bt Yahoo que le navigateur Microsoft ne peut ouvrir sans oublier le positionnement, et donc obligé d'afficher les publicités. Si on voulait ouvrir plusieur fenêtres, il fallait tout recadrer manuellement pour avoir la place sur l'écran, et sur vista, re-paramètrer l'affichage des fenêtres du navigateur local. Il fallait faire quelque chose.
C'est pas parfait mais utilisable. J'enregistre les OffSets dans des flux et re-ouvre les fenêtres comme je les ai fermées. Le site se nourissant de pub, ca risque d'être éffacé. Dépèchez de copier. Je met pas ma bêbête gestion des flux qu'elle me satisfait pas et que de toutes façon c'est dur de faire mieux que le stream.
J'espère qu'au pire, ce petit code aidera les joueurs à gérer plusieurs pages simultanément. Si je me remet pas à l'étude ses Threads, peut-être je m'attaque au login.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

23 mars 2009 09:40:12 :
Deux jours pour accepter ce Post, c'est vrai qu'en essayant de me relire, j'ai cru comprendre pourquoi on en voulait pas. J'ai profité de ces deux jours pour le refaire en version didactique bien lisible et plus fonctionnelle. En éliminant les redondances, les variables intermédiaires inutiles, et des étiquettes plus parlantes. Bien que le mot Scroll_User est plus lourd que le mot Scroll, son utilisation comme étiquette de controle qu'on utilise seulement dans la déclaration nous permet d'utiliser Scroll pour autre chose. Je sais qu'on peut multiplier le même mot en changeant de contexte, mais ça pourrait porter à confusion. (espèce d'espace de mots)
12 mai 2009 14:44:09 :
Modification de l'index de recherche
12 mai 2009 14:44:14 :
Modification de l'index de recherche
13 juillet 2009 03:29:37 :
Eclaircissements

 Sources du même auteur

Source avec une capture Source .NET (Dotnet) SCROLL DE CAMERA DANS LE VIEWPORT
Source avec Zip Source avec une capture Source .NET (Dotnet) CUBASIC, BASE DE PROGRAMATION DE LA TRI-D.
Source avec Zip Source avec une capture Source .NET (Dotnet) RETANGLE DE PETZOL
Source avec Zip Source avec une capture Source .NET (Dotnet) VIEWDOC VEILLE SUR LES ARTICLES

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

 Sources en rapport avec celle ci

Source avec une capture Source .NET (Dotnet) USER CONTROL POUR UN HISTOGRAMME À BARRES VERTICALES par tchconst
Source avec Zip Source avec une capture USERCONTROL IMAGE À PARTIR DE GDI+ par Flocreate
Source avec Zip [VBA] SCROLLER UNE LISTBOX AVEC LA MOLETTE DE LA SOURIS PAR ... par Philippe734
Source avec Zip UTILISATION DE LA MOLETTE DE LA SOURIS AVEC LE CONTRÔLE DBGR... par jacques13
Source avec Zip Source avec une capture USERCONTROL AVEC PROPERTIES PERSONALISABLE par Polack77

Commentaires et avis

Commentaire de BadoqueAlex le 23/03/2009 07:35:04

euh ... Quoi d'neuf docteur ? Bref, ca sert à quoi ?

Commentaire de Londonic le 26/03/2009 10:36:21

Bonjour BADOQUEALEX,

Ce code fait défiler un panel vbNet entre HscrollBar et VScrollBar.
Il permet de développer rapidement et simplement des applications visuelles plus grandes que la fenêtre, et de focaliser sur une partie en particulier.

Un explorateur, Par exemple

L'application est brève:
Public Class Form1
    Dim Exemple As New Surf
    Private Sub Form1_Shown(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Shown
        Text = "Mon site rouille"
        Controls.Add(Exemple)
        Exemple.init() '("http://ogame.fr/", 750, 420)
    End Sub
End Class


Le développement de l'application est court.
Public Class Surf
    Inherits UserControl
    Dim Fly As New WebBrowser
    Friend Page As New Scroller(Fly)
    Friend Sub New(Optional ByVal Largeur As Single = 1200, _
                  Optional ByVal Hauteur As Single = 1200)
        Text = "Surf"
        Fly.SetBounds(0, 0, Largeur, Hauteur) 'Taille de la Page webb
        Fly.ScrollBarsEnabled = False
        Controls.Add(Page)
        Dock = DockStyle.Fill
    End Sub
    Friend Sub init(Optional ByVal Site As String = "http://www.vbfrance.com/", _
                    Optional ByVal XOffset As Single = 870, _
                    Optional ByVal YOffset As Single = 200)
        Fly.Navigate(Site)
        Page.init(XOffset, YOffset)
    End Sub
End Class

Je posterais cette nouvelle version plus intuitive suivant l'audience. Les modifications sont minimes.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

les barre de defilement et ascenseurs [ par Elrick ] Bonjour je debutes en Visual Basic et j'apprecie vraiment a titre personnel.Je suis ennuyer car je m'amuse a devellopper une application et quand je l Debutant: barre de defilement [ par pascalbout ] bonjour,je programme un peu en VB, et j'ai fait dernierement un questionnaire en VB6, sur mon poste en 1024.768, plein ecran. Or je me suis apercu qu' Barre de defilement dans une form [ par AbsolutBeauty ] Bonjour,Je reposte car je me suis trompé de categorie ..Donc revoila mon probleme:J'ajoute dynamiquement des textbox a ma feuille, qui se mettent les Scroll barres des Panel (VB.NET) [ par j alexandre ] "Rendre rendre la barre de scroll Horizontal d'un panel &nbsp;invisible"Bonjour,j'ai un probl&#232;me : j'ai plac&#233; un Panel sur mon formulaire et UserControl et ShowInTaskbar : elle veut pas en partir ! [ par Adam0052 ] Bonjour, Je suis en train de programmer une petite horloge graphique, et je me rends compte qu'elle apparaît dans la barre des tâches. C'est en fai SUPPRIMER LA BARRE DE DEFILEMENT [ par tweety94 ] Bonjour à tous,Je cherche à retirer la barre de défilement en utilsant du javascript.Car je fais un lien avec ancre sur une page mais je ne veux pas q Scroller un clip [ par Beleche ] Yep,Bon alors je vient de me taper tou les tuto du web pour rechercher ne serait ce qu'un bout de chemin dans mon periple...mais sans grand succes...J Scroller un clip [ par Beleche ] Yep,Bon alors je vient de me taper tou les tuto du web pour rechercher ne serait ce qu'un bout de chemin dans mon periple...mais sans grand succes...J Un barre de defilement... [ par syltouille ] Bonjour a tout le monde je viens sur vbfrance aujourd'hui parce que je cherche a faire une barre de defilement (je sais pas si on dis comme ca) qui de Dimention d'un control [ par magicgus ] Bonjour à tous, Je me fait pas mal de control ocx pour me simplifier et standardisé la création de mes apps. Mais une chose que j'aimerais savoir fai


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,778 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales