Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Console.SetWindowPosition (Método)

Establece la posición de la ventana de la consola con respecto al búfer de pantalla.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

public static void SetWindowPosition(
	int left,
	int top
)

Parámetros

left
Tipo: System.Int32
Posición en columnas de la esquina superior izquierda de la ventana de la consola.
top
Tipo: System.Int32
Posición en filas de la esquina superior izquierda de la ventana de la consola.

ExcepciónCondición
ArgumentOutOfRangeException

El valor de left u top es menor que cero.

O bien

left + WindowWidth es mayor que BufferWidth.

O bien

top + WindowHeight es mayor que BufferHeight.

SecurityException

El usuario no tiene permiso para realizar esta acción.

IOException

Error de E/S.

La ventana del sistema operativo muestra la ventana de la consola y la ventana de la consola muestra una parte del búfer de pantalla. El método SetWindowPosition afecta a la posición de la ventana de la consola con respecto al búfer de pantalla, pero no afecta a la posición de la ventana del sistema operativo con respecto al escritorio.

La ventana de la consola normalmente no afecta a la ventana del sistema operativo y viceversa. No obstante, si el búfer de pantalla no se puede mostrar en los límites actuales de la ventana de la consola, el sistema operativo anexa automáticamente barras de desplazamiento a la ventana del sistema operativo. En tal caso, el movimiento de las barras de desplazamiento de la ventana del sistema operativo afecta a la posición de la ventana de la consola, y el movimiento de la ventana de la consola con el método SetWindowPosition afecta a la posición de las barras de desplazamiento de la ventana del sistema operativo.

En el ejemplo siguiente se muestran las propiedades WindowLeft, WindowTop, WindowWidth, WindowHeight, BufferWidth, BufferHeight y CursorVisible, así como los métodos SetWindowPosition, SetBufferSize y ReadKey. En el ejemplo se dibuja un modelo de cuadrícula en el búfer de pantalla tomando como base el ancho del búfer de pantalla. A continuación, se traslada la ventana de la consola en función de la tecla FLECHA ARRIBA, FLECHA ABAJO, FLECHA IZQUIERDA o FLECHA DERECHA de la consola que se presione. El modelo de cuadrícula ayuda a ver el movimiento de la ventana de la consola con respecto al búfer de pantalla.


// This example demonstrates the Console.WindowLeft and
//                               Console.WindowTop properties.
using System;
using System.Text;
using System.IO;
//
class Sample 
{
    public static int saveBufferWidth;
    public static int saveBufferHeight;
    public static int saveWindowHeight;
    public static int saveWindowWidth;
    public static bool saveCursorVisible;
//
    public static void Main() 
    {
    string m1 = "1) Press the cursor keys to move the console window.\n" +
                "2) Press any key to begin. When you're finished...\n" +
                "3) Press the Escape key to quit.";
    string g1 = "+----";
    string g2 = "|    ";
    string grid1;
    string grid2;
    StringBuilder sbG1 = new StringBuilder();
    StringBuilder sbG2 = new StringBuilder();
    ConsoleKeyInfo cki;
    int y;
//
    try 
    {
    saveBufferWidth  = Console.BufferWidth;
    saveBufferHeight = Console.BufferHeight;
    saveWindowHeight = Console.WindowHeight;
    saveWindowWidth  = Console.WindowWidth;
    saveCursorVisible = Console.CursorVisible;
//
    Console.Clear();
    Console.WriteLine(m1);
    Console.ReadKey(true);

// Set the smallest possible window size before setting the buffer size.
    Console.SetWindowSize(1, 1);
    Console.SetBufferSize(80, 80);
    Console.SetWindowSize(40, 20);

// Create grid lines to fit the buffer. (The buffer width is 80, but
// this same technique could be used with an arbitrary buffer width.)
    for (y = 0; y < Console.BufferWidth/g1.Length; y++)
        {
        sbG1.Append(g1);
        sbG2.Append(g2);
        }
    sbG1.Append(g1, 0, Console.BufferWidth%g1.Length);
    sbG2.Append(g2, 0, Console.BufferWidth%g2.Length);
    grid1 = sbG1.ToString();
    grid2 = sbG2.ToString();

    Console.CursorVisible = false;
    Console.Clear();
    for (y = 0; y < Console.BufferHeight-1; y++)
        {
        if (y%3 == 0)
            Console.Write(grid1);
        else
            Console.Write(grid2);
        }

    Console.SetWindowPosition(0, 0);
    do
        {
        cki = Console.ReadKey(true);
        switch (cki.Key) 
            {
            case ConsoleKey.LeftArrow:
                if (Console.WindowLeft > 0) 
                    Console.SetWindowPosition(
                            Console.WindowLeft-1, Console.WindowTop);
                break;
            case ConsoleKey.UpArrow:
                if (Console.WindowTop > 0) 
                    Console.SetWindowPosition(
                            Console.WindowLeft, Console.WindowTop-1);
                break;
            case ConsoleKey.RightArrow:
                if (Console.WindowLeft < (Console.BufferWidth-Console.WindowWidth)) 
                    Console.SetWindowPosition(
                            Console.WindowLeft+1, Console.WindowTop);
                break;
            case ConsoleKey.DownArrow:
                if (Console.WindowTop < (Console.BufferHeight-Console.WindowHeight)) 
                    Console.SetWindowPosition(
                            Console.WindowLeft, Console.WindowTop+1);
                break;
            }
        } 
    while (cki.Key != ConsoleKey.Escape);  // end do-while
    } // end try
    catch (IOException e) 
        {
        Console.WriteLine(e.Message);
        }
    finally 
        {
        Console.Clear();
        Console.SetWindowSize(1, 1);
        Console.SetBufferSize(saveBufferWidth, saveBufferHeight);
        Console.SetWindowSize(saveWindowWidth, saveWindowHeight);
        Console.CursorVisible = saveCursorVisible;
        }
    } // end Main
} // end Sample
/*
This example produces results similar to the following:

1) Press the cursor keys to move the console window.
2) Press any key to begin. When you're finished...
3) Press the Escape key to quit.

...

+----+----+----+-
|    |    |    |
|    |    |    |
+----+----+----+-
|    |    |    |
|    |    |    |
+----+----+----+-

*/


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft