Compartir a través de


Objeto Screen para usuarios de Visual Basic 6.0

Actualización: noviembre 2007

El objeto Screen de Visual Basic 6.0 no tiene ningún equivalente directo en Visual Basic 2008, pero la mayor parte de su funcionalidad se puede duplicar utilizando .NET Framework.

Diferencias conceptuales

En Visual Basic 6.0, el objeto Screen proporciona acceso al formulario y control activos en la aplicación, proporciona información sobre la pantalla donde se muestra la aplicación y permite controlar la apariencia del cursor.

En Visual Basic 2008, no hay ningún equivalente directo para el objeto Screen, pero la mayor parte de su funcionalidad se puede duplicar utilizando .NET Framework.

Nota:

Visual Basic 2008 tiene una propiedad Screen—My.Computer.Screen. A diferencia del objeto Screen de Visual Basic 6.0, My.Computer.Screen sólo devuelve información de sólo lectura en la pantalla, como por ejemplo, el nombre del dispositivo, área de trabajo y la profundidad de color. Para obtener más información, vea My.Computer.Screen (Propiedad)

ActiveControl (Propiedad)

En Visual Basic 6.0, la propiedad ActiveControl del objeto Screen se utiliza para determinar el control que tiene el foco. Se puede utilizar la propiedad ActiveControl en una capacidad global, como en Screen.ActiveControl, donde se devuelve el control activo en el formulario actualmente seleccionado. Si se hace referencia a un formulario concreto, es decir, Form2.ActiveControl, ActiveControl especifica el control que tendrá el foco si el formulario mencionado esta activo.

En Visual Basic 2008, ya no hay una propiedad global ActiveControl; cada instancia de un formulario tiene su propia propiedad ActiveControl. Al hacer referencia a un formulario concreto, esta propiedad funciona igual que en Visual Basic 6.0. Para determinar el control activo en el formulario seleccionado, primero debe recorrer en iteración la colección OpenForms y comprobar la propiedad ContainsFocus para determinar qué formulario está activo.

ActiveForm (Propiedad)

En Visual Basic 6.0, la propiedad ActiveForm del objeto Screen se utiliza para determinar qué formulario tiene actualmente el foco. Si un formulario principal MDI tiene el foco, ActiveForm devuelve el último formulario MDI secundario que tenía el foco.

En Visual Basic 2008, ya no hay una propiedad global ActiveForm. Para determinar el formulario activo, debe recorrer la colección OpenForms y buscar el formulario con la propiedad ContainsFocus establecida en True.

Los formularios primarios MDI de Visual Basic 2008 (cualquier formulario con IsMDIContainer establecido en True) tienen una propiedad ActiveMDIChild que se puede utilizar para devolver el formulario secundario activo sin utilizar la colección OpenForms.

MousePointer (Propiedad)

En Visual Basic 6.0, la propiedad MousePointer del objeto Screen se utiliza para cambiar la apariencia del cursor; una vez establecida se aplica a todos los formularios de la aplicación.

En Visual Basic 2008, ya no hay una propiedad global MousePointer; cada formulario tiene una propiedad Cursor que se puede utilizar sólo para cambiar la apariencia del cursor para ese formulario.

TwipsPerPixel (Propiedades)

En Visual Basic 6.0, las propiedades TwipsPerPixelX y TwipsPerPixelY del objeto Screen se utilizan para convertir las medidas de la pantalla de un twip lógico (la unidad de medida estándar en Visual Basic 6,0) en píxeles.

En Visual Basic 2008, los píxeles son la unidad de medida estándar; ya no hay necesidad de conversión.

Cambios de código para el objeto Screen

En los ejemplos siguientes se muestran las diferencias entre las técnicas de codificación de Visual Basic 6.0 y Visual Basic 2008.

Cambios de código para determinar el control activo

El siguiente código muestra la copia en el Portapapeles de texto procedente del control seleccionado en el formulario activo.

' 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

Cambios de código para determinar el formulario activo

El siguiente código muestra el cambio del título del formulario actualmente seleccionado.

' 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

Cambios de código para determinar el formulario activo en una aplicación MDI

El siguiente código muestra el cambio del título del formulario MDI secundario actualmente seleccionado.

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

Equivalencias de la propiedad de objeto Screen

En la siguiente tabla se enumeran algunas propiedades de Visual Basic 6.0 y sus equivalentes en Visual Basic 2008. Cuando es necesario, se proporcionan vínculos a temas que explican las diferencias de comportamiento. Cuando no existe un equivalente directo en Visual Basic 2008, se proporcionan vínculos a temas en los que se incluyen alternativas.

Propiedades

Visual Basic 6.0

Visual Basic 2008Equivalente

ActiveControl

My.Application.OpenForms(0).ActiveControl

ActiveForm

My.Application.OpenForms(0).ContainsFocus o

ActiveMdiChild (aplicaciones MDI)

FontCount

Fonts

Nueva implementación. El comportamiento de la enumeración de fuentes es diferente. Para obtener más información, vea Control de fuentes para usuarios de Visual Basic 6.0.

Height

My.Computer.Screen.Bounds.Height

MouseIcon

Nueva implementación. Para obtener más información, vea No se puede personalizar la propiedad MousePointer.

MousePointer

System.Windows.Forms.Cursor

TwipsPerPixelX

TwipsPerPixelY

Nueva implementación. En Visual Basic 2008, las coordenadas se expresan en píxeles; no se utilizan los twips como unidad de medida.

Width

My.Computer.Screen.Bounds.Width

Notas de la actualización

Cuando se actualiza una aplicación de Visual Basic 6.0 a Visual Basic 2008, las propiedades del objeto Screen se actualizan a sus equivalentes en Visual Basic 2008. Donde puede haber diferencias en el comportamiento, se insertan comentarios de actualización en el código.

Vea también

Conceptos

Objeto App para usuarios de Visual Basic 6.0

Control de fuentes para usuarios de Visual Basic 6.0

Referencia

My.Application.OpenForms (Propiedad)

My.Computer.Screen (Propiedad)