позиционирование и перемещение фигуры в консольном приложении (console.write ("bla bla bla");) - PullRequest
0 голосов
/ 11 августа 2011

мое консольное приложение, как показано ниже:

static void Main(string[] args)
{
    string Now = DateTime.Now.ToShortDateString();
    if (Now == "2011/08/12")
    {
        Console.Clear();
        Console.Write("Money..........");
        Console.Read();
    }
    else
    {
        int n = 6;

        var result = string.Join("\r\n", from i in Enumerable.Range(1, n)
                                         where i != 2
                                         let stars = Enumerable.Repeat('*', i)
                                         let indent = new string(' ', n - i)
                                         select indent + string.Join(" ", stars));

        Console.WriteLine(result);
        Console.Read();
    }
} 

верхние коды в c #

мои вопросы:
1- как мы можем найти некоторые примеры форм в консольном приложении, как верхний пример с *!
верхний пример со звездами слишком прост / я ищу более подходящие формы, такие как повесить кого-то (просто для удовольствия) 2- как мне переместить окно console.write с кодом?
3. Как мне переместить фигуру в окне console.write?
4 - как я могу установить расположение окна consol.write?

заранее спасибо

Ответы [ 2 ]

1 голос
/ 11 августа 2011

Чтобы переместить фактическое окно консоли, вам нужно сделать SetWindowPos с GetConsoleWindow (Win32 API), как описано здесь .

[DllImport("kernel32.dll", ExactSpelling = true)]
private static extern IntPtr 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);

//    
SetWindowPos(GetConsoleWindow(), 0, x, y, 0, 0, SWP_NOSIZE);

Обращаясь к фигурам внутри окна консоли, взгляните на MonoCurses . Я не уверен, работает ли он в Windows, но он достаточно продвинутый (с окнами, диалогами, абстракциями приложений и множеством виджетов для ввода данных)

1 голос
/ 11 августа 2011

Вы смотрели на MSDN http://msdn.microsoft.com/en-us/library/system.console.aspx

1 - Вам придется самостоятельно разрабатывать формы, наслаждайтесь.

Вот код, который что-то делает, но у вас уже есть некоторыеваш пример.

int pos = 0
int limit = 80
while (true)
{
    StringBuilder line  = new StringBuilder(limit);
    for(int i = 0; i < limit; i++)
    {
        if (i = pos)
        {
            line.Append("A");
        }
        else
        {
            line.Append(" ");
        }
    }
    Console.WriteLine(line.ToString());
    if (pos = (limit - 1))
    {
        pos = 0;
    }
    else
    {
        pos++;
    }
}

2 - Вы можете перемещать окно консоли с помощью Console.WindowLeft и Console.WindowsTop

3 - Форма - это неправильное слово и идея здесь, вы можете только читать инаписать строки текста.Вы можете создать впечатление движущейся фигуры, используя символ, скажем, 0 или в качестве фона, заполнив всю строку как «пустую», а затем используйте некоторые другие символы для представления вашей фигуры.См. Пример выше.

4 - То же, что и 2.

...