Accueil > > > 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
Description
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.
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
Sources de la même categorie
Commentaires et avis
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 invisible"Bonjour,j'ai un problème : j'ai placé 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
|
Derniers Blogs
ASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHEASYNC/AWAIT: COMPRENDRE COMMENT CA MARCHE par fathi
Tout le monde est unanime pour dire que la programmation multi-thread et asynchrone est en train de devenir un sujet incontournable. Beaucoup de choses sont arrivées avec le framework 4 pour le code parallèle (TPL, PLinq,.) et bientôt, on va avoir l...
Cliquez pour lire la suite de l'article par fathi PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS !PAS D'INTELLITRACE SUR MON SITE WEB DANS IIS ! par Etienne Margraff
J'ai récemment eu un problème pour obtenir l'intelliTrace sur un site web dans IIS. Il n'y avait pas de message d'erreur, rien dans le journal d'évènement Windows, et après 3 appels à une voyante, 2 visites chez un marabou, j'ai failli me résign...
Cliquez pour lire la suite de l'article par Etienne Margraff OFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONSOFFICE 365 - SHAREPOINT ONLINE, QUELQUES LIMITATIONS par junarnoalg
De nombreuses entreprises font le choix de SharePoint Online, service fourni au travers de l'offre de Microsoft Office 365. S'il est vrai que ce choix apporte un grand nombre d'avantages; rapidité de mise en œuvre, disponibilité, large couvertu...
Cliquez pour lire la suite de l'article par junarnoalg PRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGEPRéSENTATION DES API REST DE WINDOWS AZURE : LISTER LES COMPTES DE STORAGE par richardc
http://www.c2idotnet.com/articles/presentation-des-api-rest-de-windows-azure-lister-les-comptes-de-storage
Désolé pour "toto", mais c2i existait avant blogs.developpeur.org et c'est mon site "officiel" ;-) ...
Cliquez pour lire la suite de l'article par richardc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|