9
votes

Formulaire de position dans le coin inférieur droit de l'écran dans Visual Basic

Comment puis-je positionner un formulaire dans le coin inférieur droit de l'écran lorsque le formulaire se charge? J'utilise Visual Basic 2010 Express.

Merci P>

Edit: Je l'ai fait et il semble fonctionner très bien. P>

Dim x As Integer
Dim y As Integer
x = Screen.PrimaryScreen.WorkingArea.Width - 400
y = Screen.PrimaryScreen.WorkingArea.Height - 270
Me.Location = New Point(x, y)


5 commentaires

Besoin d'autres informations sur cette question: utilisez-vous VB ou VB.NET? Savez-vous quelle version? Êtes-vous en bosse une application MDI / SDI?


Localiser ou positionner? Et quelle version de vb?


Visual Basic 2010 Express, en fait je voulais dire positionnement


Être débutant n'est rien pour être désolé. Nous avons tous été là et dans certains domaines, nous sommes tous débutants.


Merci Fredrik, alors commencez ...


8 Réponses :


6
votes

Vous devez modifier le formulaire.Starposition en mode manuel et modifier la propriété de localisation du formulaire

par exemple Comment Pour définir l'emplacement / la position du démarrage de formulaire manuellement?

ou

VB.NET - Formulaire de démarrage supérieur gauche

en utilisant Form.Startposition Propriété et Form.Location Propriété


4 commentaires

Ce n'est que la moitié de la réponse - également aussi importante et beaucoup plus difficile à suivre si c'est en fait quelque chose que chaque programmeur de bureau devrait savoir (et la question vraiment clé) est de savoir comment obtenir la taille et l'emplacement du travail. zone du bureau. Je l'ai fait pour la dernière fois à Delphi, il y a plus longtemps que je me soucie de me souvenir et je n'ai pas encore trouvé la réponse .NET ... (ou du moins, je ne me souviens pas, ce faisant).


Screen.GetworkingArea renvoie la taille et l'emplacement de la partie utile de l'écran. Ou dans les détails d'escroc, la zone de bureau de l'écran, à l'exclusion des barres de tâches, des fenêtres d'accouplement et des barres d'outils amarrées. Vous passez dans un contrôle, car il pourrait y avoir plusieurs moniteurs, auquel cas il utilise le contrôle pour décider quel moniteur vous vouliez dire. msdn.microsoft.com/en-us/library/45zswy9x.aspx


Voici quelques échantillons de code dans C #, il se traduit par vb.net assez directement. ( Ceci est moi ) Stackoverflow.com/Questtions/1385674/...


ouais j'ai édité ma question avec le code que j'ai écrit et il semble fonctionner



0
votes

Vous pouvez faire boucle à travers les formes de l'enfant et effectuer des calculs basés sur les propriétés supérieure et gauche (peut-être combiner ces calculs avec des propriétés de largeur et de hauteur en fonction de votre exigence pour "bas à gauche")

hth, Mark


0 commentaires

8
votes
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Visible = True
    Dim x As Integer
    Dim y As Integer
    x = Screen.PrimaryScreen.WorkingArea.Width
    y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height

    Do Until x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width
        x = x - 1
        Me.Location = New Point(x, y)
    Loop

End Sub

2 commentaires

Comme son nom l'indique, cela ne la localise que dans le coin de l'écran primaire . Avec plusieurs moniteurs, cela va souvent être le mauvais et gêner l'utilisateur.


Oh wow, quelqu'un qui n'aime pas les mathématiques autant que moi. Le code est génial, mais l'approche avec le «faire jusqu'à» n'est pas belle.



3
votes

Cela fait simplement que cela fait le tour pour moi: des manches juste au-dessus / à gauche du Taskar S le cas peut être.

Dim x As Integer
        Dim y As Integer
        x = Screen.PrimaryScreen.WorkingArea.Width - Me.Width
        y = Screen.PrimaryScreen.WorkingArea.Height - Me.Height
        Me.Location = New Point(x, y)


0 commentaires

4
votes

Écran Centre:

Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height)


0 commentaires

1
votes

Si vous souhaitez positionner le formulaire sur le curseur à l'écran, utilisez:

' Get Active Screen Cursor is On, rather than assuming user on PrimaryScreen
Dim scr As Screen = Screen.FromPoint(Cursor.Position)

Me.Location = New Point(scr.WorkingArea.Right - Me.Width, scr.WorkingArea.Bottom - Me.Height)


0 commentaires

1
votes

vous pouvez essayer comme

sous forme de formulaire privé1_load (Sender byval en tant que système.Object, byval E comme système.eventargs) gère myBase.load Me.StartPosition = Formsartposition.Manual Me.location = écran.getworkingArea (moi) .location End sous


0 commentaires

0
votes

Essayez cette solution. Cela fonctionne pour moi à VS 2019

Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    Me.Top = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height - Me.Height
    Me.Left = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width - Me.Width
    MyBase.OnLoad(e)
End Sub


0 commentaires