浅析WinForm程序中使用控制台作为输出窗口_.Net教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:浅析C#中的Adapter设计模式
意图 把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。 场景 假设网络游戏的客户端程序分两部分。一部分是和服务端通讯的大厅部分,大厅部分提供的功能有道具购买、读取房间列表、创建房间以及

最初打算写一个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

 

下面是

一张效果截图。

 

分享:解读 .NET开发者常犯的错误
.NET开发过程中不是程式的无法运行,就是程式的效率慢的同蜗牛在爬; 这种情况在.NET的新手中尤其常见;我不知道为什么,一些介绍.NET开发的书本里引用的例子代码,也对此问题视而不见,尤其让我郁闷的是一些我喜欢的书也出现了同样的问题。 这篇文章不仅对.N

来源:模板无忧//所属分类:.Net教程/更新时间:2009-09-01
相关.Net教程