Консольное приложение внутри WinForm - C#
Формулировка задачи:
Итак. У меня есть форма, на которой есть одна кнопка button1.
Требуется: Пользователь нажимает на кнопку - появляется такое черное окно как в ConsoleApplication - там с помощью WriteLine выводится какое-нибудь сообщение. Если пользователь введет "1" - то консоль закроется, в ином случае - ничего происходить не будет.
Решение задачи: «Консольное приложение внутри WinForm»
textual
Листинг программы
using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
namespace ConsoleRedirection
{
public partial class FormConsole : Form
{
TextWriter _writer = null;
public FormConsole()
{
InitializeComponent();
}
private void FormConsole_Load(object sender, EventArgs e)
{
_writer = new TextBoxStreamWriter(textbox1);
Console.SetOut(_writer);
}
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("Hello world");
}
}
public class TextBoxStreamWriter : TextWriter
{
TextBox _output = null;
public TextBoxStreamWriter(TextBox output)
{
_output = output;
}
public override void Write(char value)
{
base.Write(value);
_output.AppendText(value.ToString());
}
}
}