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

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

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

代码:

using System;

using SystemCollectionsGeneric;

using SystemComponentModel;

using SystemData;

using SystemDrawing;

using SystemText;

using SystemWindowsForms;

using SystemDiagnostics;

using SystemIO;

namespace WindowsApplication1

{

public partial class Form1 : Form

{

private Process _process;

private StreamWriter _writer;

private MethodInvoker _methodInvoker;

private string _currentOutput;

public Form1()

{

InitializeComponent();

_currentOutput = stringEmpty;

_methodInvoker = new MethodInvoker( ShowOutput );

_process = new Process();

_processOutputDataReceived += new DataReceivedEventHandler( _process_OutputDataReceived );

}

void _process_OutputDataReceived( object sender, DataReceivedEventArgs e )

{

_currentOutput = eData;

BeginInvoke( _methodInvoker );

}

private void ShowOutput()

{

txtOutputText += _currentOutput + "\r\n";

}

private void btnStart_Click( object sender, EventArgs e )

{

try

{

StartProcess();

btnStartEnabled = false;

}

catch( Exception ex )

{

MessageBoxShow( exToString() );

}

}

private void btnOK_Click( object sender, EventArgs e )

{

if (_writer != null)

{

_writerWriteLine(txtInputText);

}

}

private void StartProcess()

{

ProcessStartInfo psi = new ProcessStartInfo( @"\bin\debug\Consoleexe" );

psiCreateNoWindow = true;

psiRedirectStandardInput = true;

psiRedirectStandardOutput = true;

psiUseShellExecute = false;

_processStartInfo = psi;

_processStart();

_writer = _processStandardInput;

_processBeginOutputReadLine();

}

}

}

将ConsoleRead和ConsoleReadLine的语句都改成从TextBox控件输入,将ConsoleWrite和ConsoleWriteLine相关的调用都改成给一个Label控件赋值,LabelText=xxx;

这样就行了

重写Form构造函数,可处理入参,并且在Form当中While探测异步翻译的执行结果。为了不显示窗体,在Form的构造函数最后执行SystemEnvironmentExit(0);来退出程序

以上就是关于C#的一个WinForm程序,调用一个console程序,该程序要求屏幕输入,如何由WinForm程序带出来全部的内容,包括:C#的一个WinForm程序,调用一个console程序,该程序要求屏幕输入,如何由WinForm程序带出来、C#如何将Console程序修改为WinForm程序、请教怎么修改为Console程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9289478.html

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

发表评论

登录后才能评论

评论列表(0条)

保存