用户界面-将基于控制台的ui移植到GUI界面



正如你们大多数人所经历的那样,开发控制台应用程序就像一样简单

void mainloop(){
    while (1){
        giveInstructions();
        getInput();
        if (!process()) break;
        printOutput();
    }
}
int main(){
    mainloop();
    return 0;
}

然而,在GUI中,这就成了一个问题。

我们仍然可以giveInstructions()process()printOutput(),但getInput()不起作用,因为它依赖于一个事件,通常是按钮点击或按键按下。

如何在代码更改最少的情况下将控制台应用程序移植到gui应用程序?(最好不要改变main方法,尽可能少地改变mainloop功能)

注意:我穿线还不太舒服。

由于没有给出特定的语言,我将在C#中展示一个示例,在该示例中,您可以使用与控制台应用程序相同的代码,并使用简单的GUI。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            //using form-editor, double-click buttons or use the following
            btnInput.Click += new EventHandler(btnInput_Click);
            btnContinue.Click += new EventHandler(btnContinue_Click);
            giveInstructions();
        }
        private void giveInstructions()
        {
            txtInfo.Text = "";
            txtInput.Text = "";
            //display instructions to multi-line textbox
        }
        private void btnInput_Click(object sender, EventArgs e)
        {
            //or you can just add another button for exit.
            if (txtInput.Text == "expected value for exit")
            {
                Application.Exit();
            }
            else
            {
                getInput();
            }
        }
        private void getInput()
        {
            string strInput = txtInput.Text;
            //do stuff
            printOutput();
        }
        private void printOutput()
        {
            //display output to multi-line textbox
        }
        private void btnContinue_Click(object sender, EventArgs e)
        {
            giveInstructions();
        }
    }

相关内容

  • 没有找到相关文章

最新更新