Dimensionnement de Form

Résolu
cs_Bernard74 Messages postés 40 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 26 janvier 2013 - 1 avril 2010 à 10:09
cs_Bernard74 Messages postés 40 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 26 janvier 2013 - 1 avril 2010 à 10:47
Bonjour,
Avec ce code, je peux agrandir ou diminuer la taille des forms de mon projet, par contre je ne sais pas comment repositionner les forms, après redimmensionnement, au centre de l'écran. Il semblerait que la propriété Startposition = CenterScreen ne s'applique qu'une seule fois, au premier chargement de la form. Si quelqu'un avait une idée ....
Avec mes remerciements,
Bernard

Imports System.Drawing
.
.
Public Class XXXXX
Public Font_Redim As Decimal
Public NewSize As Decimal
.
.
Private Sub XXXXX_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Font_Redim = 0
KeyPreview = True
End Sub
.
.
Private Sub XXXXX_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.F11 Then
Font_Redim = 0.9
ChangeTaille()
End If
If e.KeyCode = Keys.F12 Then
Font_Redim = 1.1
ChangeTaille()
End If
End Sub
.
.
Private Sub ChangeTaille()
Try
For Each Formulaire As Form In My.Application.OpenForms
Formulaire.AutoScaleMode = Windows.Forms.AutoScaleMode.Font
NewSize = Formulaire.Font.Size * Font_Redim
If NewSize < 6 Then NewSize = 6
If NewSize > 16 Then NewSize = 16
Dim newFont As New Font(Formulaire.Font.Name, NewSize, Formulaire.Font.Style)
Formulaire.Font = newFont
Formulaire.StartPosition = FormStartPosition.CenterScreen ' NE MARCHE PAS
Next
Catch ex As Exception
End Try
End Sub
.
.

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 avril 2010 à 10:22
Salut,

Oui le StartPosition, comme son nom l'indique, définie la position au lancement.

C'est à toi de modifier la position :
Form.left = (Screen.PrimaryScreen.Bounds.Width - Form.Width) / 2 'centre la fenêtre horizontalement
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
1 avril 2010 à 10:20
je ne vois pas bien l'interet de centrer la form...

si tu t'amuses a agrandir la form, il est preferable de t'arranger pour ne pas que la form ne sorte de l'ecran

mais recentrer la fenetre ...


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
1 avril 2010 à 10:26
gaffe, l'ami

PrimaryScreen, n'est pas forcéemnt l'ecran sur laquelle la form est placée.
et tous les ecrans n'ont pas necessairement les même dimensions

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 avril 2010 à 10:28
Salut,

C'est pas faux, faut alors savoir sur quel écran la fenêtre est située avant de redéfinir sa position.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bernard74 Messages postés 40 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 26 janvier 2013
1 avril 2010 à 10:47
Merci DARKSIDIOUS

Form.left = (Screen.PrimaryScreen.Bounds.Width - Form.Width) / 2 'centre la fenêtre horizontalement

çà fonctionne parfaitement !

Bernard
0
Rejoignez-nous