Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在表单中嵌入控制台_Vb.net_String_Logging_Server - Fatal编程技术网

Vb.net 在表单中嵌入控制台

Vb.net 在表单中嵌入控制台,vb.net,string,logging,server,Vb.net,String,Logging,Server,TL;博士: 有没有办法将控制台嵌入表单中,使其成为表单的一部分 场景: 我正在用VB.NET中的Windows窗体编写一个聊天应用程序,其中包含客户端、服务器和数据库。服务器应在文本框中记录其与客户端的通信 问题: 到目前为止,这不会是一个问题-如果字符串没有maxlength!我希望这个服务器几乎永远都不会停止(好吧,它总是有停止的时候……但是让我们忽略这一点)。因此,如果我选择Textbox1.Text&=vbnewline&“Something”它总有一天会达到这个长度,并且每次记录

TL;博士

有没有办法将控制台嵌入表单中,使其成为表单的一部分


场景

我正在用VB.NET中的Windows窗体编写一个聊天应用程序,其中包含
客户端
服务器
数据库
。服务器应
文本框
中记录其与客户端的
通信


问题

到目前为止,这不会是一个问题-如果字符串没有
maxlength
!我希望这个服务器几乎永远都不会停止(好吧,它总是有停止的时候……但是让我们忽略这一点)。因此,如果我选择
Textbox1.Text&=vbnewline&“Something”
它总有一天会达到这个长度,并且每次记录某个内容时都会遇到
异常。我也不想只删除字符串的第一个字符


我的解决方案想法

我的解决办法是:
使用控制台
而不是简单的文本框,并将其嵌入表单
,使其成为表单的一部分。有没有一个简单的方法可以做到这一点?简单地说,我的意思是我必须编写数千行代码才能实现这个目标


我对不同的想法和方法持开放态度。

为什么不将聊天记录到文件中(你可以每天创建一个文件)


然后显示它-使用
列表框
并将每一新行附加到列表框的末尾?每次追加时,您都可以检查列表框中有多少项,如果超过1000项,则删除前100项作为示例。

将TL:DR放在问题末尾没有多大意义;-)现在还不清楚使用控制台如何解决您的问题;或者,“控制台”的确切含义是什么?控制台的maxlength比普通字符串对象小得多。您应该在屏幕上存储最后1000条消息或其他内容,其余的则记录在文件中。否。这是不可能的。控制台不能嵌入到窗体中。您需要解决阻止您使用文本框的实际问题。请记住,任何用户都无法读取足够的文本以达到文本框的最大长度。如果你在阅读时拿着枪对着他们的脑袋,考虑使用RixTeXBox。控制台的最大长度是32766,所以它无论如何也解决不了你的解决方案:有一天文件不会成为任何编辑器打开的巨大途径吗?一旦一个文件中有太多的字符,大多数编辑打开它都会遇到巨大的困难。这绝对是一种方法。也有类似的想法。如果我找不到另一种方法,我会用它。但我仍然感兴趣的是,是否有一种方法可以在表单中嵌入控制台。@Luke您每天可以有一个文件
    Dim filename = String.Format("C:\Temp\{0:yyyy-MM-dd}-log.txt", DateTime.Now)
    My.Computer.FileSystem.WriteAllText(filename, "line of text", True)