当前位置: 首页 > 知识库问答 >
问题:

C#Windows窗体文本框输入

蔚承天
2023-03-14

我目前正在尝试制作一个应用程序(只是为了学习,试图习惯C#,因为我有点新手),我想在表单中创建一个可以说是终端的应用程序。我决定尝试使用包含多行的文本框,并尝试使用if和else语句,但当我进入文本框并开始键入时,它会立即返回每次击键后为“else”设置的错误消息。我不知道是什么,但我觉得我错过了什么。有什么建议吗?另外,是否可以单独为该应用程序创建我自己的“命令”?我说的是,当你输入“program_speech”时,它会出现一个对话框,要求用户输入,它基本上会用内置的Windows语音合成器将文本转换为语音。谢了!感谢所有的帮助!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Terminator //Lol Terminator Reference
{
    public partial class Form1 : Form
    {
        private string answer;

        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (answer == "help")
            {
                MessageBox.Show("There is only 2 commands as of now and that is 'help' and 'program_speech' ");
            }
            else if (answer == "program_speech")
            {
                MessageBox.Show("Still currently under creation");
            }
            else
            {
                MessageBox.Show("Invalid Command. Please try again or type help for current available commands");
            }
        }
    }
}

共有1个答案

申屠泉
2023-03-14

每次击键时都会引发一个名为TextChanged的事件,它会转到“无效命令”的else条件,因为当时该文本框中的文本既不是“help”也不是“program_speech”。绝对不建议使用TextChanged。

您应该使用按钮及其click事件来检查TextBox的值。因为这是确保所需文本全部写入的唯一方法。就像是-

    private void btnCheckText_Click(object sender, EventArgs e)
    {
        answer = textBox1.Text;

        if (answer == "help")
        {
            MessageBox.Show("There is only 2 commands as of now and that is 'help' and 'program_speech' ");
        }
        else if (answer == "program_speech")
        {
            MessageBox.Show("Still currently under creation");
        }
        else
        {
            MessageBox.Show("Invalid Command. Please try again or type help for current available commands");
        }
    }
 类似资料:
  • 我有两个表单:表单1和表单2。comboBox在表单2中。我正在尝试将一个项目添加到表单1中的comboBox选项列表中。这是我迄今为止所做的尝试。 这个的问题是它不让我选择项目。(它不让我输入项目。添加) 我还试图通过点击表单中的comboBox并将私有更改为公共来公开它。这是我更改它时的样子。 但当我尝试访问时,我得到的只有: 我可能犯了很多错误,但那是因为我对此很陌生。我刚刚开始学习,所以如

  • 因此,我陷入了尴尬的境地--我想用Visual Studio创建Windows窗体应用程序,但我找不到任何地方来创建Visual C++Windows窗体模板。我甚至尝试重新安装Visual C++,添加其他库,并在线搜索答案--没有结果。 我当然可以用C#创建新的Winforms: 但不是在C++中:

  • prompt prompt输入框弹窗的native实现 使用方法 AlipayJSBridge.call('prompt', { title: '亲', message: '确定要这么干吗?', placeholder:'提示文案', okButton: '是', cancelButton: '否' }, function(result) { alert(JSON.stri

  • 主要内容:创建文本域,TextField文本,示例-1,实例-2,实例-3用于单行文本输入。请看下面的示例 - 和字段扩展了类,它是JavaFX中所有文本控件的超类。 上面的代码生成以下结果。 创建文本域 我们可以使用类的构造函数来创建文本字段。 只是一个带有光标的文本输入框,通常我们需要一个控件来告诉文本字段的目的。以下代码创建一个控件来标记对应的文本字段是用于名称输入。然后它创建一个对象。之后,它使用HBox布局和。 使用预定义文本创建文本字段。 TextField

  • 在上一节我们讲到了 TextView,它用来显示一段文本。这一节可以算作成是 TextView 的延续,因为从功能上 EditText 在 TextView 的基础之上多了一个输入的功能;从代码上 EditText 是继承自 TextView 的子类,所以我们可以大胆的理解为, EditText 是一种带有输入功能的高级 TextView。 1. EditText 的特性 在学习过 TextVie

  • 文本输入框和文本输入域使用标准的html标记的,然后Jquery Mobile会让他们变得更吸引人而且易于触摸使用 要使用输入标准文字的输入框,给input增加type="text"属性。注意要把label的for属性设为input的id值,使他们能够在语义上相关联,并且要用div容器包裹它们,并给他设定data-role="fieldcontain"属性 HTML 代码: <div data-r