技术开发 频道

WinForm程序中使用控制台作为输出窗口

 【IT168技术文档】最初打算写一个log窗口类,使用textbox控件以及 progressbar,后来发现挺麻烦,远不及console窗口下的console.write和console.writeline方便。于是尝试直接将信息输出到控制台窗口。

 1、 在winform程序中调用console窗口。这个使用Win32 API来完成。关于AllocConsole函数和FreeConsole函数的详细信息可以参见这里和这里。VB.NET的代码如下:

 Form程序调用和释放Console窗口

1 Public Class ConsoleHelperClass ConsoleHelper

 2 ‘调用控制台窗口

 3  _

 4 Public Shared Function AllocConsole()Function AllocConsole() As Boolean

 5 End Function

 6

 7 ’释放控制台窗口

 8  _

 9 Public Shared Function FreeConsole()Function FreeConsole() As Boolean

 10 End Function

 11 End Class

  在调用AllocConsole后,就将console窗口调配给当前进程使用,在当前进程的任何位置我们都可以

 使用console.write和console.writeline函数进行程序信息的输出了。

 2、 console窗口下绘制一个进度条。

 ;1' 先绘制出进度条的底色。

 2 Private Sub Init()Sub Init()

 3 Console.WriteLine(”开始计算:” & Date.Now.ToLongDateString & Date.Now.ToLongTimeString)

 4 ‘绘制一个进度条背景

 5 Console.BackgroundColor = ConsoleColor.DarkCyan

 6 For i As Integer = 0 To 99

 7 Console.Write(” “)

 8 Next

 9 Console.BackgroundColor = ConsoleColor.Black

 10 Console.WriteLine()

 11 End Sub

 12

 13' 2.b 根据计算线程的进度绘制进度条

 14 Dim SumProg as Integer

 15 Private Sub DrawProgressBar()Sub DrawProgressBar

 16 SumProg += 1

 17 Console.Write(”{0}%”, SumProg)

 18 Console.SetCursorPosition(0, Console.CursorTop - 1)

 19 Console.BackgroundColor = ConsoleColor.Yellow

 20 For p As Integer = 0 To SumProg - 1

 21 Console.Write(” “)

 22 Next

 23 Console.BackgroundColor = ConsoleColor.Black

 24 Console.WriteLine()

 25 End Sub

 

 查看原文地址

0
相关文章