2009-04-11 6 views
0

Console.Writeを使用して、コンソールをスクロールしなくても、通常の80x25コンソールの右下に1文字を配置できますか?これは私が使用しているコードです...System.Console.Writeでスクロールを無効にする

Imports System 
Console.SetCursorPosition(Console.WindowWidth-1, Console.WindowHeight-1) 
Console.Write("x") 

これは私が好きなように動作しません。どんな提案や選択肢?私は、SetCursorPositionがすでに0,0の座標系を使用していることをテストしました。 WindowWidth-1/Height-1を使用すると、画面の右下に表示されますが、Console.Writeは「x」を押して次の行に進んでいます。

答えて

4

バッファ領域を移動することができます。たとえば:

Console.WriteLine("Top") 
Console.SetCursorPosition(Console.WindowWidth - 1, Console.WindowHeight - 1) 
Console.Write("x") 
Console.MoveBufferArea(0, 0, 80, 25, 0, 1) 
Console.ReadLine() 
+0

に気づくだろうとは思いません。ありがとうございました! – Valdemarick

+0

私はお手伝いできることを嬉しく思います。 – aphoria

+0

これがうまくいくためには、BufferAreaはすでにコンソールディメンションよりも大きくなければなりません。コンソールディメンションは、多くのコンソールでスクロールバーが厄介になります。その時点で、コンソールAPIを介してスクロールアップするだけかもしれません。 –

0

問題は、特定の行の最後の場所に書き込むたびに、コンソールは常に次の行に移動することです。あなたができる最も近いことは、最後の2番目の場所に書き込むことです:

 Console.CursorLeft = Console.WindowWidth - 1; 
     Console.Write("X"); 
0

私は汚いが、機能的な方法でそれを解決しました。

Console.SetCursorPosition(79, 24); //last pos 
Console.BufferWidth++; 
Console.Write("x"); 
Console.BufferWidth--; 
Console.ReadKey(); 

箱の側面には、ミリ秒をちらつくんが、私は誰もが今まで:)完璧に動作

+0

私はそれを知っています。そして、私は一人ではないと賭けるでしょう。 – Kawa

関連する問題