Screen-Objekt für Visual Basic 6.0-Benutzer
Aktualisiert: November 2007
Für das Screen-Objekt von Visual Basic 6.0 ist in Visual Basic 2008 keine direkte Entsprechung verfügbar, für die meisten Funktionen des Objekts kann jedoch .NET Framework verwendet werden.
Konzeptionelle Unterschiede
Mit dem Screen-Objekt von Visual Basic 6.0 werden der Zugriff auf das aktive Formular und Steuerelement einer Anwendung sowie Informationen zum Bildschirm bereitgestellt, auf dem die Anwendung angezeigt wird. Darüber hinaus kann damit das Erscheinungsbild des Cursors gesteuert werden.
In Visual Basic 2008 ist für das Screen-Objekt keine direkte Entsprechung verfügbar, für die meisten der Funktionen des Objekts kann jedoch .NET Framework verwendet werden.
![]() |
---|
Visual Basic 2008 verfügt über eine Screen-EigenschaftMy.Computer.Screen. Im Unterschied zum Screen-Objekt von Visual Basic 6.0 gibt My.Computer.Screen lediglich schreibgeschützte Informationen zum Bildschirm zurück, z. B. den Gerätenamen, den Arbeitsbereich und die Farbtiefe. Weitere Informationen finden Sie unter My.Computer.Screen-Eigenschaft. |
ActiveControl-Eigenschaft
In Visual Basic 6.0 wird mit der ActiveControl-Eigenschaft des Screen-Objekts das fokussierte Steuerelement bestimmt. Die ActiveControl-Eigenschaft kann global angewendet werden, beispielsweise in Screen.ActiveControl, wo das aktive Steuerelement auf dem aktuell ausgewählten Formular zurückgegeben wird. Bei einem Verweis auf ein bestimmtes Formular, z. B. Form2.ActiveControl, gibt ActiveControl das Steuerelement an, das den Fokus erhält, sobald das betreffende Formular aktiviert wird.
In Visual Basic 2008 ist keine globale ActiveControl-Eigenschaft mehr vorhanden. Jede Instanz eines Formulars verfügt über eine eigene ActiveControl-Eigenschaft. Wenn auf ein bestimmtes Formular verwiesen wird, verhält sich die Eigenschaft genau wie in Visual Basic 6.0. Um das aktive Steuerelement des momentan ausgewählten Formulars zu bestimmen, müssen Sie zunächst die OpenForms-Auflistung durchlaufen sowie die ContainsFocus-Eigenschaft prüfen und so das aktive Formular ermitteln.
ActiveForm-Eigenschaft
In Visual Basic 6.0 wird mit der ActiveForm-Eigenschaft des Screen-Objekts das aktuell fokussierte Formular ermittelt. Wenn ein übergeordnetes MDI-Formular den Fokus besitzt, gibt ActiveForm das untergeordnete MDI-Formular zurück, das als letztes fokussiert wurde.
In Visual Basic 2008 gibt es keine globale ActiveForm-Eigenschaft mehr. Um das aktive Formular zu bestimmen, müssen Sie die OpenForms-Auflistung durchlaufen und das Formular suchen, dessen ContainsFocus-Eigenschaft auf True festgelegt ist.
In Visual Basic 2008 verfügen übergeordnete MDI-Formulare (Formulare, deren IsMDIContainer auf True festgelegt ist) über eine ActiveMDIChild-Eigenschaft, mit der das aktive untergeordnete Formular ohne Verwendung der OpenForms-Auflistung zurückgegeben werden kann.
MousePointer-Eigenschaft
In Visual Basic 6.0 wird mit der MousePointer-Eigenschaft des Screen-Objekts das Erscheinungsbild des Cursors geändert. Nach dem Festlegen gilt dieser Cursor für alle Formulare der Anwendung.
In Visual Basic 2008 gibt es keine globale MousePointer-Eigenschaft. Jedes Formular verfügt über eine eigene Cursor-Eigenschaft, mit der das Erscheinungsbild des Cursors nur im jeweiligen Formular geändert werden kann.
TwipsPerPixel-Eigenschaften
In Visual Basic 6.0 werden mithilfe der TwipsPerPixelX-Eigenschaft und der TwipsPerPixelY-Eigenschaft des Screen-Objekts die in logischen Twips (Standardmaßeinheit in Visual Basic) angegebenen Bildschirmmaße in Pixel konvertiert.
In Visual Basic 2008 werden standardmäßig Pixel als Maßeinheit verwendet. Eine Konvertierung ist daher nicht erforderlich.
Änderungen am Code des Screen-Objekts
Im folgenden Beispiel werden Unterschiede in den Codierungstechniken von Visual Basic 6.0 und Visual Basic 2008 dargestellt.
Änderungen am Code, um das aktive Steuerelement zu bestimmen
Im folgenden Code wird veranschaulicht, wie Text aus dem aktuell ausgewählten Steuerelement des aktiven Formulars in die Zwischenablage kopiert wird.
' 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
Änderungen am Code, um das aktive Formular zu bestimmen
Der folgende Code veranschaulicht, wie die Beschriftung des momentan ausgewählten Formulars geändert wird.
' 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
Änderungen am Code, um das aktive Formular in einer MID-Anwendung zu ermitteln
Der folgende Code veranschaulicht, wie die Beschriftung des momentan aktiven untergeordneten MDI-Formulars geändert wird.
' Visual Basic 6.0
Screen.ActiveForm.Caption = "This is the selected child form"
' Visual Basic
Me.ActiveMdiChild.Text = "This is the selected child form"
Entsprechungen zu Eigenschaften des Screen-Objekts
In der folgenden Tabelle werden die Eigenschaften von Visual Basic 6.0 zusammen mit ihren Visual Basic 2008-Entsprechungen aufgeführt. Bei Bedarf werden Links zu Themen bereitgestellt, in denen die Unterschiede im Verhalten erläutert werden. Wenn in Visual Basic 2008 keine direkte Entsprechung vorhanden ist, werden Links zu Themen bereitgestellt, die Alternativen behandeln.
Eigenschaften
Visual Basic 6.0 |
Visual Basic 2008-Entsprechung |
---|---|
ActiveControl |
My.Application.OpenForms(0).ActiveControl |
ActiveForm |
My.Application.OpenForms(0).ContainsFocus oder ActiveMdiChild (MDI-Anwendungen) |
FontCount Fonts |
Neue Implementierung. Das Verhalten für die Auflistung von Schriften wurde geändert. Weitere Informationen finden Sie unter Schriftartbehandlung für Visual Basic 6.0-Benutzer. |
Height |
My.Computer.Screen.Bounds.Height |
MouseIcon |
Neue Implementierung. Weitere Informationen finden Sie unter Es kann kein benutzerdefinierter MousePointer festgelegt werden. |
MousePointer |
System.Windows.Forms.Cursor |
TwipsPerPixelX TwipsPerPixelY |
Neue Implementierung. In Visual Basic 2008 werden die Koordinaten in Pixel angegeben (die Maßeinheit Twips wird nicht verwendet). |
Width |
My.Computer.Screen.Bounds.Width |
Hinweise zum Durchführen des Updates
Wenn eine Visual Basic 6.0-Anwendung auf Visual Basic 2008 aktualisiert wird, werden die Objekteigenschaften aller Screen-Objekte auf ihre Entsprechungen in Visual Basic 2008 aktualisiert. Bei Abweichungen im Verhalten werden Updatekommentare in den Code eingefügt.
Siehe auch
Konzepte
App-Objekt für Visual Basic 6.0-Benutzer
Schriftartbehandlung für Visual Basic 6.0-Benutzer