Установка положения Консоли, открытой в Приложении WinForms

Это зависит, если размер замены больше, чем замененная строка.

StringBuilder выделяет свой буфер , тогда как строка только когда-либо содержит, как когда-либо много символов находятся в нем.

StringBuilder. Свойство Capacity - то, сколько символов буфер будет содержать, в то время как StringBuilder. Длина состоит в том, сколько символов используется.

Обычно необходимо установить StringBuilder. Способность к значению, больше тогда ожидаемая результирующая строка. Иначе StringBuilder должен будет перераспределить свой буфер. , Когда StringBuilder перераспределяет свой буфер, он удваивает его в размере , что означает после того, как пара перераспределяет его, вероятно, значительно больше тогда, это должно быть, способностью по умолчанию запускает по телефону 16.

By, устанавливающий Полное значение, когда Вы запускаете (в конструкторе, например), Вы сохраняете перераспределения буфера StringBuilder. Можно использовать StringBuilder. MaxCapacity для ограничения максимальной способностью, до которой может быть расширен StringBuilder.

17
задан vaxquis 20 August 2017 в 14:43
поделиться

1 ответ

вы можете попробовать что-то вроде этого.

Этот код устанавливает положение окна консоли в консольном приложении .

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;


namespace ConsoleApplication10
{
  class Program
  {
    const int SWP_NOSIZE = 0x0001;


    [DllImport("kernel32.dll", ExactSpelling = true)]
    private static extern IntPtr GetConsoleWindow();

    private static IntPtr MyConsole = GetConsoleWindow();

    [DllImport("user32.dll", EntryPoint = "SetWindowPos")]
    public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags);

    static void Main(string[] args)
    {
      int xpos = 300;
      int ypos = 300;
      SetWindowPos(MyConsole, 0, xpos, ypos, 0, 0, SWP_NOSIZE);
      Console.WriteLine("any text");
      Console.Read();
    }
  }
}

Этот код устанавливает положение окна консоли Окно консоли в приложении WinForm .

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;


namespace WindowsFormsApplication10
{
  static class Program
  {

    const int SWP_NOSIZE = 0x0001;

    [System.Runtime.InteropServices.DllImport("kernel32.dll")]
    private static extern bool AllocConsole();

    [DllImport("user32.dll", EntryPoint = "SetWindowPos")]
    public static extern IntPtr SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int Y, int cx, int cy, int wFlags);

    [DllImport("kernel32.dll", SetLastError = true)]
    public static extern IntPtr GetConsoleWindow();

    [STAThread]
    static void Main()
    {
      AllocConsole();
      IntPtr MyConsole = GetConsoleWindow();
      int xpos = 1024;
      int ypos = 0;
      SetWindowPos(MyConsole, 0, xpos, ypos, 0, 0, SWP_NOSIZE);
      Console.WindowLeft=0;
      Console.WriteLine("text in my console");

      Application.EnableVisualStyles();
      Application.SetCompatibleTextRenderingDefault(false);
      Application.Run(new Form1());
    }
  }
}
36
ответ дан 30 November 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: