C#的一个WinForm程序,调用一个console程序,该程序要求屏幕输入,如何由WinForm程序带出来?

C#的一个WinForm程序,调用一个console程序,该程序要求屏幕输入,如何由WinForm程序带出来?,第1张

在窗颂侍体上拖一个textbox(txtInput)用来接受输入,一个textbox(txtOutput)接野肆吵受输出,两个按钮:btnOK,btnStart

代雹型码:

using System

using System.Collections.Generic

using System.ComponentModel

using System.Data

using System.Drawing

using System.Text

using System.Windows.Forms

using System.Diagnostics

using System.IO

namespace WindowsApplication1

{

public partial class Form1 : Form

{

private Process _process

private StreamWriter _writer

private MethodInvoker _methodInvoker

private string _currentOutput

public Form1()

{

InitializeComponent()

_currentOutput = string.Empty

_methodInvoker = new MethodInvoker( ShowOutput )

_process = new Process()

_process.OutputDataReceived += new DataReceivedEventHandler( _process_OutputDataReceived )

}

void _process_OutputDataReceived( object sender, DataReceivedEventArgs e )

{

_currentOutput = e.Data

BeginInvoke( _methodInvoker )

}

private void ShowOutput()

{

txtOutput.Text += _currentOutput + "\r\n"

}

private void btnStart_Click( object sender, EventArgs e )

{

try

{

StartProcess()

btnStart.Enabled = false

}

catch( Exception ex )

{

MessageBox.Show( ex.ToString() )

}

}

private void btnOK_Click( object sender, EventArgs e )

{

if (_writer != null)

{

_writer.WriteLine(txtInput.Text)

}

}

private void StartProcess()

{

ProcessStartInfo psi = new ProcessStartInfo( @"\bin\debug\Console.exe" )

psi.CreateNoWindow = true

psi.RedirectStandardInput = true

psi.RedirectStandardOutput = true

psi.UseShellExecute = false

_process.StartInfo = psi

_process.Start()

_writer = _process.StandardInput

_process.BeginOutputReadLine()

}

}

}

C# Winform里面用Console.WriteLine输出也不会报错,是设置错误造成的,解决方法如下:

1、首先打开vs2015,点击文件-新建-项目。

2、d出框默认是c#,选择Windows窗体应用程序,给程序起名为MyfirstProgramm。

3、点击确定后,可以在vs2015看见目前已经建立好的winform程序。现在为它加个小功能,增加一个button,察答点击buttond出消息框。

4、双击上图的button按钮,就进入到代码界面。蚂启光标会自动定位到代码里。程序已经自动给这个button增加了个鼠标点击事件函数button1_Click。只要点击鼠标,就会触动这个函数里面的代码。

5、最后直接按F5运行程序,运行出来的界面点击button,就会d出消息框闷没如。

Console.WriteLine应用在console application中, 功能类似于winform的MessageBox

Console.WriteLine的功能是写一行, 与Console.WriteLine对应的还有Console.ReadLine,意思是读取行, 两个连在一块使用示例:

Console.WriteLine("请输入一个整数:") 芹尘山       

int i=Convert.ToInt32(Console.ReadLine()) 兄毁//读取输入值

Console.WriteLine("您输入的整数为"+i.ToString())

Console.ReadLine()    //这里的作用是防止输出对话框闪退,可嫌中以去掉对比下


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12523495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存