Partager via


Objet Screen pour les utilisateurs de Visual Basic 6.0

Mise à jour : novembre 2007

L'objet Screen de Visual Basic 6.0 n'a aucun équivalent direct dans Visual Basic 2008, mais la plupart de ses fonctionnalités peuvent être reproduites à l'aide de .NET Framework.

Différences conceptuelles

Dans Visual Basic 6.0, l'objet Screen fournit l'accès au formulaire et au contrôle actif dans votre application, fournit des informations sur l'écran où l'application est affichée, et vous permet de contrôler l'apparence du curseur.

Dans Visual Basic 2008, il n'y a aucun équivalent direct de l'objet Screen, mais la plupart de ses fonctionnalités peuvent être reproduites à l'aide de .NET Framework.

Remarque :

Visual Basic 2008 possède une propriété Screen—My.Computer.Screen. Contrairement à l'objet Visual Basic 6.0 Screen, My.Computer.Screen retourne uniquement des informations en lecture seule relatives à l'écran, telles que son nom de périphérique, sa zone de travail et sa profondeur chromatique. Pour plus d'informations, consultez My.Computer.Screen, propriété

Propriété ActiveControl

Dans Visual Basic 6.0, la propriété ActiveControl de l'objet Screen sert à déterminer le contrôle qui a le focus. La propriété ActiveControl peut être utilisée dans une capacité globale, comme dans Screen.ActiveControl, où le contrôle actif est retourné sur le formulaire actuellement sélectionné. Si un formulaire spécifique est référencé, par exemple, Form2.ActiveControl, ActiveControl spécifie le contrôle qui aura le focus si le formulaire référencé est actif.

Dans Visual Basic 2008, il n'y a plus de propriété globale ActiveControl ; chaque instance d'un formulaire dispose de sa propre propriété ActiveControl. Lors du référencement d'un formulaire spécifique, cette propriété fonctionne exactement comme dans Visual Basic 6.0. Pour déterminer le contrôle actif sur le formulaire actuellement sélectionné, vous devez d'abord parcourir la collection OpenForms et vérifier la propriété ContainsFocus pour déterminer quel formulaire est actif.

ActiveForm, propriété

Dans Visual Basic 6.0, la propriété ActiveForm de l'objet Screen sert à déterminer le formulaire qui a le focus. Si un formulaire MDI parent a le focus, ActiveForm retourne le dernier formulaire MDI enfant à avoir eu le focus.

Dans Visual Basic 2008, il n'y a plus de propriété ActiveForm globale. Pour déterminer le formulaire actif, vous devez effectuer une itération sur la collection OpenForms et rechercher le formulaire dont la propriété ContainsFocus a pour valeur True.

Les formulaires MDI parents de Visual Basic 2008 (tout formulaire dans lequel IsMDIContainer a pour valeur True) ont une propriété ActiveMDIChild qui peut être utilisée pour retourner le formulaire enfant actif sans utiliser la collection OpenForms.

Propriété MousePointer

Dans Visual Basic 6.0, la propriété MousePointer de l'objet Screen est utilisée pour modifier l'apparence du curseur; une fois définie, elle s'applique à tous les formulaires de l'application.

Dans Visual Basic 2008, il n'y a plus de propriété MousePointer globale ; chaque formulaire dispose d'une propriété Cursor propre qui peut être utilisée pour modifier l'aspect du curseur uniquement dans ce formulaire.

Propriétés TwipsPerPixel

Dans Visual Basic 6.0, les propriétés TwipsPerPixelX et TwipsPerPixelY de l'objet Screen sont utilisées pour convertir des cotes d'écran d'un twip logique (l'unité de mesure standard dans Visual Basic 6.0.) en pixels.

Dans Visual Basic 2008, les pixels sont l'unité de mesure standard ; une conversion n'est plus nécessaire.

Modifications du code pour l'objet Screen

Les exemples ci-dessous illustrent les différences entre les techniques de codage dans Visual Basic 6.0 et dans Visual Basic 2008.

Modifications du code pour déterminer le contrôle actif

Le code suivant montre comment copier le texte du contrôle actuellement sélectionné sur le formulaire actuellement sélectionné dans le Presse-papiers.

' Visual Basic 6.0
If TypeOf Screen.ActiveControl Is TextBox Then
    Clipboard.SetText Screen.ActiveControl.Text
End If
' Visual Basic
Dim i As Integer
For i = 0 To My.Application.OpenForms.Count - 1
  If My.Application.OpenForms.Item(i).ContainsFocus Then
    If TypeOf (My.Application.OpenForms.Item(i).ActiveControl) _
      Is TextBox Then
        My.Computer.Clipboard.SetText(My.Application.OpenForms. _
          Item(i).ActiveControl.Text)
    End If
  End If
Next

Modifications du code pour déterminer le formulaire actif

Le code suivant illustre la modification de la légende du formulaire en cours de sélection.

' Visual Basic 6.0
Screen.ActiveForm.Caption = "This is the selected form"
' Visual Basic
Dim i As Integer
For i = 0 To My.Application.OpenForms.Count - 1
  If My.Application.OpenForms.Item(i).ContainsFocus Then
    My.Application.OpenForms.Item(i).Text = _
      "This is the selected form"
  End If
Next

Modifications du code pour déterminer le formulaire actif dans une application MDI

Le code suivant illustre la modification de la légende du formulaire MDI enfant en cours de sélection.

' Visual Basic 6.0
Screen.ActiveForm.Caption = "This is the selected child form"
' Visual Basic
Me.ActiveMdiChild.Text = "This is the selected child form"

Équivalences des propriétés d'objet Screen

Le tableau suivant répertorie les propriétés Visual Basic 6.0 et leurs équivalents dans Visual Basic 2008. Le cas échéant, des liens vous renvoient vers des rubriques expliquant les différences de comportement. Lorsqu'il n'existe pas d'équivalent direct dans Visual Basic 2008, des liens vous renvoient vers des rubriques proposant des alternatives.

Propriétés

Visual Basic 6.0

Visual Basic 2008Équivalent

ActiveControl

My.Application.OpenForms(0).ActiveControl

ActiveForm

My.Application.OpenForms(0).ContainsFocus ou

ActiveMdiChild (applications MDI)

FontCount

Fonts

Nouvelle implémentation. Le comportement d'énumération des polices est différent. Pour plus d'informations, consultez Gestion des polices pour les utilisateurs de Visual Basic 6.0.

Height

My.Computer.Screen.Bounds.Height

MouseIcon

Nouvelle implémentation. Pour plus d'informations, consultez Impossible de définir un pointeur de souris personnalisé.

MousePointer

System.Windows.Forms.Cursor

TwipsPerPixelX

TwipsPerPixelY

Nouvelle implémentation. Dans Visual Basic 2008, les coordonnées sont en pixels ; les twips ne sont pas utilisés comme unité de mesure.

Width

My.Computer.Screen.Bounds.Width

Mettre à niveau des remarques

Lorsqu'une application Visual Basic 6.0 est mise à niveau vers Visual Basic 2008, toutes les propriétés de l'objet Screen sont mises à niveau vers leurs équivalents Visual Basic 2008. Des commentaires de mise à niveau sont insérés dans le code aux endroits où des différences de comportement sont susceptibles de se produire.

Voir aussi

Concepts

Objet App pour les utilisateurs de Visual Basic 6.0

Gestion des polices pour les utilisateurs de Visual Basic 6.0

Référence

My.Application.OpenForms, propriété

My.Computer.Screen, propriété