如何让文本框实现类似windows下的cmd命令行的效果?

askerasker 2010-05-31 10:38:18
点击按钮,弹出个新窗体,该窗体里有一个文本框一样的输入界面,比如500*500的范围
然后刚进来是

MDI>

提示用户输入命令
输入完回车,会执行相应的功能,并且光标移到下一行,又出现新的

MDI>

且该MDI无法编辑

如图所示



这个是用传统的richtextbox实现的么?还是要别的什么方法?
...全文
529 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2010-05-31
  • 打赏
  • 举报
回复
subclass这个文本框。吃掉不需要的消息。
只允许在最下面一行输入。
askerasker 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yuanhuiqiao 的回复:]

用richText应该能实现,追加几个事件处理即可,只是有没有更好的,不确定
[/Quote]


没有更好的控件了啊?图中这个程序看起来也是textbox实现的
askerasker 2010-05-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ly302 的回复:]

WinForm程序中使用控制台(console)作为输出窗口 (转)

最近写了一个随机模拟的计算程序,因为计算耗时很长,所以运算中要输出一些信息,以方便用户随时了解运算的进度以及其他信息。最初打算写一个log窗口类,使用textbox控件以及 progressbar,后来发现挺麻烦,远不及console窗口下的console.write和console.writeline方便……
[/Quote]

我是要输入命令啊,不是输出显示数据啊
皇城龙三 2010-05-31
  • 打赏
  • 举报
回复
WinForm程序中使用控制台(console)作为输出窗口 (转)

最近写了一个随机模拟的计算程序,因为计算耗时很长,所以运算中要输出一些信息,以方便用户随时了解运算的进度以及其他信息。最初打算写一个log窗口类,使用textbox控件以及 progressbar,后来发现挺麻烦,远不及console窗口下的console.write和console.writeline方便。于是尝试直接将信息输出到控制台窗口。


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

Form程序调用和释放Console窗口
1Public Class ConsoleHelperClass ConsoleHelper
2‘调用控制台窗口
3<DllImport(”kernel32.dll”)> _
4Public Shared Function AllocConsole()Function AllocConsole() As Boolean
5End Function
6
7’释放控制台窗口
8<DllImport(”kernel32.dll”)> _
9Public Shared Function FreeConsole()Function FreeConsole() As Boolean
10End Function
11End Class


在调用AllocConsole后,就将console窗口调配给当前进程使用,在当前进程的任何位置我们都可以使用console.write和console.writeline函数进行程序信息的输出了。

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

Console下绘制进度条
 1'先绘制出进度条的底色。
2Private Sub Init()Sub Init()
3Console.WriteLine(”开始计算:” & Date.Now.ToLongDateString & Date.Now.ToLongTimeString)
4‘绘制一个进度条背景
5Console.BackgroundColor = ConsoleColor.DarkCyan
6For i As Integer = 0 To 99
7Console.Write(” “)
8Next
9Console.BackgroundColor = ConsoleColor.Black
10Console.WriteLine()
11End Sub
12
13'2.b 根据计算线程的进度绘制进度条
14Dim SumProg as Integer
15Private Sub DrawProgressBar()Sub DrawProgressBar
16SumProg += 1
17Console.Write(”{0}%”, SumProg)
18Console.SetCursorPosition(0, Console.CursorTop - 1)
19Console.BackgroundColor = ConsoleColor.Yellow
20For p As Integer = 0 To SumProg - 1
21Console.Write(” “)
22Next
23Console.BackgroundColor = ConsoleColor.Black
24Console.WriteLine()
25End Sub



下面是一张效果截图。
yuanhuiqiao 2010-05-31
  • 打赏
  • 举报
回复
用richText应该能实现,追加几个事件处理即可,只是有没有更好的,不确定

110,584

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧