利用WinForm的textBox实现控制台的Console.WriteLine
来源:互联网 发布:淘宝美工职业规划 编辑:程序博客网 时间:2024/05/29 17:19
重写WriteLine与Write方法,重写后Console.WriteLine将直接写到Winform的textBox框中,不受类库的限制。
public class ConsoleHelper : TextWriter{ private System.Windows.Forms.TextBox _textBox { set; get; } private int maxRowLenght = 200;//textBox中显示的最大行数,若不限制,则置为0 public ConsoleHelper(System.Windows.Forms.TextBox textBox) { this._textBox = textBox; Console.SetOut(this); } public override void Write(string value) { if (_textBox.IsHandleCreated) _textBox.BeginInvoke(new ThreadStart(() => {if(maxRowLenght > 0 && _textBox.Lines.Lenght > maxRowLenght){int strat = _textBox.GetFirstCharIndexFromLine(0);//获取第0行第一个字符的索引int end = _textBox.GetFirstCharIndexFromLine(10);_textBox.Select(strat,end);//选择文本框中的文本范围_textBox.SelectedText = "";//将当前选定的文本内容置为“”_textBox.AppendText(value + " ");}else{_textBox.AppendText(value + " ");}})); } public override void WriteLine(string value) { if (_textBox.IsHandleCreated) _textBox.BeginInvoke(new ThreadStart(() => {if(maxRowLenght > 0 && _textBox.Lines.Lenght > maxRowLenght){int strat = _textBox.GetFirstCharIndexFromLine(0);//获取第0行第一个字符的索引int end = _textBox.GetFirstCharIndexFromLine(10);_textBox.Select(strat,end);//选择文本框中的文本范围_textBox.SelectedText = "";//将当前选定的文本内容置为“”_textBox.AppendText(value + "\r\n");}else{_textBox.AppendText(value + "\r\n");}})); } public override Encoding Encoding//这里要注意,重写wirte必须也要重写编码类型 { get { return Encoding.UTF8; } }}
然后在Form.cs中的Form()中初始化一下:
public Form(){InitializeComponent();new ConsoleHelper(txt_this);//重写Console的Write与WriteLine}
txt_this为要输出的目标textbox。
不想再向Form输出时,直接屏蔽 new ConsoleHelper(txt_this);
那么现在就可以在任何地方使用Console.WriteLine()来输出到Form中的textBox中了。
阅读全文
0 0
- 利用WinForm的textBox实现控制台的Console.WriteLine
- C#控制台 console.writeline中占位符的示例
- 技巧 console.writeline的快捷键
- Console.Write()与Console.WriteLine()的区别
- C#之WinForm基础 winform中用到控制台的consol.writeline,在哪里可以看到效果
- 显示Console.WriteLine输出的内容
- C#中Console.WriteLine()的用法
- VS2015使用技巧 console.writeline的快捷键
- C#中Console.WriteLine()的用法
- 【Unity&JSON】Console.WriteLine的问题
- C#中Console.WriteLine()的简介
- C#编程中Console.Write()和Console.WriteLine()的区别
- C#中Console.WriteLine(),Console.Write()的用法
- Console.read()、Console.readline()、Console.readkey()和Console.Write()、Console.Writeline()的区别
- Console.read()、Console.readline()、Console.readkey()和Console.Write、Console.Writeline()的意思
- C#控制台 console.writeline输出变量
- WinForm中,实现TextBox的验证
- Delphi中利用管道重定向实现对控制台(Console)程序的操作
- 考试总结14
- 极限优化WordPress!打造完美站点
- Java算法之基数排序
- NLP08-Gensim源码简析[ShardedCorpus&UciCorpus&LowCorpus]
- SpringBoot学习——No.1
- 利用WinForm的textBox实现控制台的Console.WriteLine
- Android 7.0以上调用相机崩溃
- MapReduce中combine、partition、shuffle的作用是什么
- [JZOJ5445]失格
- 利用Lambda表达式从实体集合中筛选出符合条件的实体集合
- 交叉编译lzo
- 容器化安装openstack单节点环境
- 引入阿里Druid数据库连接池(maven ssm框架)
- 高通输入输出设备选择