我的控制台应用程序如下所示:
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窗口定位?
提前致谢
答案 0 :(得分:1)
您是否查看了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 - Shape在这里是错误的单词和想法,你只能读写文本行。您可以使用char 0
或作为背景来创建移动形状的印象,将整行填充为“空白”,然后使用其他一些字符来表示您的形状。请参阅上面的示例。
4 - 与2相同。
答案 1 :(得分:1)
要重新定位实际的控制台窗口,您需要按照here所述的SetWindowPos
(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,但是非常先进(具有Window,Dialog,Application抽象和许多用于数据输入的小部件)