Afficher en anglais

Partage via


Console.SetBufferSize(Int32, Int32) Méthode

Définition

Définit la hauteur et la largeur de la zone de mémoire tampon d'écran sur les valeurs spécifiées.

C#
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static void SetBufferSize (int width, int height);
C#
public static void SetBufferSize (int width, int height);

Paramètres

width
Int32

Largeur de la zone de mémoire tampon mesurée en colonnes.

height
Int32

Hauteur de la zone de mémoire tampon mesurée en lignes.

Attributs

Exceptions

height ou width est inférieur ou égal à zéro.

- ou -

height ou width est supérieur ou égal à Int16.MaxValue.

- ou -

width est inférieur à WindowLeft + WindowWidth.

- ou -

height est inférieur à WindowTop + WindowHeight.

L’utilisateur n’est pas autorisé à effectuer cette action.

Une erreur d'E/S s'est produite.

Le système d’exploitation actuel n’est pas Windows.

Exemples

L’exemple suivant illustre les WindowLeftpropriétés , WindowWidthWindowTop, WindowHeight, BufferWidth, BufferHeight, et CursorVisible les SetWindowPositionméthodes , SetBufferSizeet ReadKey . L’exemple dessine un modèle de grille dans la mémoire tampon d’écran en fonction de la largeur de la mémoire tampon de l’écran. Ensuite, l’exemple déplace la fenêtre de console en réponse à laquelle des touches de console flèche vers le haut, flèche bas, flèche gauche ou flèche droite est enfoncée. Le modèle de grille vous permet de voir le mouvement de la fenêtre de console par rapport à la mémoire tampon d’écran.

C#
// 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.

...

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

*/

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1