【问题标题】:How do I use buttons and text boxes in a winform application in C#?如何在 C# 的 winform 应用程序中使用按钮和文本框?
【发布时间】:2010-03-04 04:40:11
【问题描述】:

我正在尝试将我的控制台应用程序变成一个 winforms 应用程序。

控制台版本会要求多个输入,然后返回输出。

对于 winforms 版本,我希望有多个文本框供用户输入数据,一个按钮将它们全部重置,另一个用于实际执行计算。然后会有一个显示结果的显示器(我猜这将是另一个文本框)。

基本上我已经知道如何添加按钮和文本框以进行输入/计算,但我不确定如何显示输出,或为所有这些添加功能。

编辑:如果我想阻止用户使用无效输入(任何非正整数),我应该使用屏蔽文本框吗?

【问题讨论】:

标签: c# winforms input


【解决方案1】:

从这里开始:http://www.codeproject.com/KB/books/1861004982.aspx,它有点旧但仍然相关。

也可以看看微软官方网站:http://windowsclient.net/learn/videos.aspx

GUI 开发既棘手又有趣又令人兴奋!

编辑:我应该指出我正在链接到事物,因为在这一点上,能够自己从文档和互联网学习新技术(例如 WinForms)对于您未来的技能发展非常宝贵。

【讨论】:

    【解决方案2】:
     public partial class Form2 : Form
        {
            Button reset = new Button();
            Button compute = new Button();
            Panel pnl = new Panel();
    
            public Form2()
            {
    
                reset.Text = "reset";
                compute.Text = "compute";
                pnl.Name = "pnl";
    
                reset.Click += new EventHandler(reset_Click);
                compute.Click += new EventHandler(compute_Click); 
    
                this.Controls.Add(compute);
                this.Controls.Add(reset);
                this.Controls.Add(pnl);
    
                init();
    
                foreach (Control ctl in this.Controls)
                {
                    ctl.Dock = DockStyle.Top;
                }
    
    
            }
    
            void compute_Click(object sender, EventArgs e)
            {
                int tot=0;
                foreach (TextBox txt in pnl.Controls)
                {
                    tot += int.Parse(txt.Text);
                }
    
                MessageBox.Show("total is:" + tot.ToString());
            }
    
            void reset_Click(object sender, EventArgs e)
            {
                foreach (TextBox txt in pnl.Controls)
                {
                    txt.Text = "0";
                }
            }
    
            private void init()
            {   
                pnl.Controls.Clear();
    
                //5 textbox
                for (int i = 0; i <= 5; i++)
                {
                    TextBox t = new TextBox();
                    t.Dock = DockStyle.Top;
                    t.Text = "0";
                    this.Controls["pnl"].Controls.Add(t);                
                }
            }
    
        }
    

    【讨论】:

      【解决方案3】:

      如何添加另一个只读文本框来显示输出?

      【讨论】:

      • 我认为这会奏效。我只需要弄清楚如何使其全部发挥作用,因为它与控制台应用程序有很大不同。
      猜你喜欢
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多