读书人

可不可以在richtextbox/textbox里想Co

发布时间: 2013-04-09 16:45:09 作者: rapoo

可否在richtextbox/textbox里想Console.WriteLine()一样的输出
各位前辈,在下想请教一下可否在richtextbox/textbox里想Console.WriteLine()一样带格式(如以16进制输出,固定输出几位)的输出。
例如在控制台程序下的代码:

                            
[解决办法]
用string.Format。

public partial class Form1 : Form
{
public Form1()
{
TextBox consoleTextBox = new TextBox()
{
Multiline = true,
Font = new Font(FontFamily.GenericMonospace, 9),
Dock = DockStyle.Fill,
};
this.Controls.Add(consoleTextBox);

MyConsole.OnWrite = str =>
{
consoleTextBox.BeginInvoke((Action)delegate { consoleTextBox.AppendText(str); });
};

}

protected override void OnActivated(EventArgs e)
{
base.OnActivated(e);


MyConsole.WriteLine("hello");
MyConsole.Write("{0:X8}", 123);
for(int i=0; i<4; i++) MyConsole.Write(" {0:X2}",i);
}
}

public static class MyConsole
{
public static Action<string> OnWrite {get; set;}
public static void Write(string format, params object[] args)
{
Action<string> onWrite = OnWrite;
if(onWrite != null) onWrite(string.Format(format, args));
}
public static void WriteLine(string format, params object[] args)
{
Write(format, args);
Write(Environment.NewLine);
}
}


[解决办法]
引用:
请问拖进去的控件和用代码创建的控件有什么区别?例如二楼的代码我应该怎么改成拖进去的控件,我没改明白……求前辈指教!
你把他所有添加控件的代码去掉,控件变量名换成你的就是了。注意在InitializeComponent()函数后调用控件相关代码。

读书人网 >C#

热点推荐