C# Windows窗体与简单控制台应用程序的区别
我目前开始将我的控制台项目“移植”到WinForms,但似乎我做得很失败 我只是习惯了控制台结构: 我让我的类根据来自控制台的输入相互交互。 一个简单的流程:C# Windows窗体与简单控制台应用程序的区别,c#,winforms,visual-studio-2008,console,interaction,C#,Winforms,Visual Studio 2008,Console,Interaction,我目前开始将我的控制台项目“移植”到WinForms,但似乎我做得很失败 我只是习惯了控制台结构: 我让我的类根据来自控制台的输入相互交互。 一个简单的流程: Input -> ProcessInput -> Execute -> Output -> wait for input 现在我得到了这个大的Form1.cs(等等)和“Application.Run(Form1);” 但我真的不知道我的类如何与表单交互并创建如上所述的流 我的意思是,对于表单中的每个“项目”,我
Input -> ProcessInput -> Execute -> Output -> wait for input
现在我得到了这个大的Form1.cs(等等)和“Application.Run(Form1);”
但我真的不知道我的类如何与表单交互并创建如上所述的流
我的意思是,对于表单中的每个“项目”,我都有这些“…\u单击(对象发送者…)”。
现在我不知道在哪里放置/启动我的流/循环,以及我的类如何与表单交互。基本上,您可以让表单提供一组用于输入数据的控件(即:一个或多个TextBox控件)。如果你有一个用户点击的按钮,并且你想处理它,只需双击这个按钮。这将为您提供一个事件处理程序,如:
private void button1_Click(object sender, EventArgs e)
{
// Process Input from TextBox controls, etc.
// Execute method
// Set output (To other controls, most likely)
}
就这样,“循环”消失了,因为标准的Windows消息泵取代了它。事实上相当简单(尽管我可以同情你的困惑) 1。输入
有一个
文本框
和一个按钮
。当用户单击按钮时,将文本框中的内容作为输入
2。过程输入
在控制台应用程序中,用户在处理输入时无法执行任何操作。在Windows窗体应用程序中类似于此的功能是禁用用户提供输入的机制。因此,设置TextBox.Enabled=false
和Button.Enabled=false
3。执行
运行您想要执行的任何方法
4。输出
在表单上显示某种消息。这可能只是另一个文本框
,或RichTextBox
。。。你要什么都行
5。等待输入
执行步骤3中的方法后,您已经在第4部分中显示了输出,您可以继续并重新激活接受输入的机制:TextBox.Enabled=true
和Button.Enabled=true
所以基本上你的代码应该是这样的:
void myButton_Click(object sender, EventArgs e) {
try {
myInputTextBox.Enabled = false;
myButton.Enabled = false;
var input = ParseInput(myInputTextBox.Text);
var output = ExecuteMethodWithInput(input);
myOutputTextBox.Text = FormatOutput(output);
} finally {
myInputTextBox.Enabled = true;
myButton.Enabled = true;
}
}
因此,我必须将每个事件处理程序视为一个“小流程”?@daemonfire300:基本上,它是处理的“入口点”。你说“当用户点击这个按钮时,我想运行这个代码…”所以它为你提供了一种“处理”和启动流控制的方法。