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

开发 后端
最近写了一个随机模拟的计算程序,因为计算耗时很长,所以运算中要输出一些信息,以方便用户随时了解运算的进度以及其他信息。因此作者使用控制台作为输出窗口,小小技巧也是一种比较方便的方法。

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

下面是一张效果截图。

【编辑推荐】

  1. C#在WinForm开发中Label换行方法
  2. C#中使用多线程访问Winform问题解决方案
  3. 体验VS.NET 2005的winform新功能
责任编辑:彭凡 来源: cnblogs
相关推荐

2024-04-28 10:58:00

C#编程窗口关闭事件

2011-07-06 15:25:33

Windows控制台

2010-12-21 14:32:43

操作控制台

2014-08-11 11:12:35

Jansi

2022-03-30 08:40:00

JavaScript控制台

2011-06-10 15:21:25

Qt 控制台

2023-02-02 09:33:04

Linux控制台程序

2011-07-01 18:35:17

QT 控制台

2009-06-15 09:50:34

JBoss控制台

2011-08-08 10:55:14

IOS 控制台 Consol

2011-07-19 15:38:15

故障恢复控制台

2009-08-19 15:31:32

C#控制台应用程序

2011-07-11 16:25:25

控制台

2011-07-11 11:05:09

Windows控制台

2011-07-12 15:18:01

SQLite数据库引擎

2011-07-27 13:59:04

2011-07-11 09:57:19

WINDOWS控制台DOS命令

2021-06-17 11:34:54

SLS 阿里云

2009-10-10 10:45:04

VB 2005新型控制

2009-03-04 10:10:49

控制台桌面虚拟化Xendesktop
点赞
收藏

51CTO技术栈公众号