在控制台应用程序中定位和移动形状(console.write("bla bla"))

本文关键字:quot bla console write 应用程序 控制台 定位 移动 | 更新日期: 2023-09-27 18:05:19

我的控制台应用如下:

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-我如何移动控制台。用代码写窗口?
我如何在控制台内移动形状。写窗口?
4-我如何设置控制台。写窗口定位?

thanks in advance

在控制台应用程序中定位和移动形状(console.write("bla bla"))

你有没有看过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.WindowLeftConsole.WindowsTop移动控制台窗口

3 -形状是错误的词和想法在这里,你只能读和写行文本。你可以创建一个移动的形状的印象通过使用字符说0作为背景,填充整行为"空白",然后使用一些其他字符来表示你的形状。参见上面的例子。

4 -同2.

要重新定位实际的控制台窗口,您需要像这里描述的那样使用CC_6 (Win32 API)执行GetConsoleWindow

[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上工作,但它相当先进(有窗口,对话框,应用程序抽象和许多用于数据输入的小部件)