c#中的文本框解析

本文关键字:文本 | 更新日期: 2023-09-27 18:09:13

我有问题解析从textBox在c#。基本上,我试图设置一些值为整数,之后,当人类型的数字在文本框中,如果它是相同的增加计数器。但我必须解析int到字符串,这里我失败了。

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace kontrolno {
  public partial class Form1: Form {
    int counter;
    int A = 13;
    int B = 2116;
    public Form1() {
      InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e) {
      label3.Text = counter.ToString();
    }
    private void label3_Click(object sender, EventArgs e) {}
    private void groupBox1_Enter(object sender, EventArgs e) {}
    private void textBox1_TextChanged(object sender, EventArgs e) {
      int A = Int32.Parse(textBox1.Text);
      if (textBox1.Text = A) /*As you see somewhere here i have a problem*/
    }
    private void textBox2_TextChanged(object sender, EventArgs e) {
      /*Here must be parsed second textBox*/
    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {
      switch (comboBox1.SelectedIndex) //comboBox 1st case
      {
      case 0:
        button1.Enabled = false;
        textBox1.Text = "13";
        textBox2.Text = "2116";
        radioButton1.Checked = true;
        checkBox1.Checked = true;
        /*Those 3 answers should 
        checkBox2.Checked = true;   be counted as one 
        checkBox4.Checked = true;  when mark is formed*/
        checkBox5.Checked = true;
        break;
      case 1:
        /*comboBox 2nd case*/
        button1.Enabled = true;
        textBox1.Text = "";
        textBox2.Text = "";
        radioButton1.Checked = false;
        checkBox1.Checked = false;
        checkBox2.Checked = false;
        checkBox4.Checked = false;
        checkBox5.Checked = false;
        break;
      }
    }
    private void radioButton1_CheckedChanged(object sender, EventArgs e) {
      if (radioButton1.Checked) {
        counter++;
      }
    }
    private void checkBox1_CheckedChanged(object sender, EventArgs e) {
      if (checkBox1.Checked) {
        counter++;
      }
    }
    private void checkBox2_CheckedChanged(object sender, EventArgs e) {
      if (checkBox2.Checked) {
        counter++;
      }
    }
    private void checkBox4_CheckedChanged(object sender, EventArgs e) {
      if (checkBox4.Checked) {
        counter++;
      } else {
        counter--;
      }
    }
    private void checkBox5_CheckedChanged(object sender, EventArgs e) {
      if (checkBox5.Checked) {
        counter++;
      } else {
        counter--;
      }
    }
  }
}

所以我有问题,但我不知道如何解决它。该代码的思想是要测试的。组合框有2个项目在第一项练习用户看到所有的问题和答案。在第二项中,用户填写答案,当按下按钮时,他收到他的分数。我还没有实现标记公式,因为不能从文本框得到结果。

我还想问是否有可能从复选框中得到3个答案算作一个?

应该很简单,但是我刚刚崩溃了,无法解决这个问题。

c#中的文本框解析

我不知道你想做什么,但是你似乎把赋值操作符(=)和相等操作符(==)混在一起了。如果要将文本框的内容与值进行比较,则应使用相等运算符:

if (textBox1.Text == A)

请注意,您应该在这一行得到一个编译错误,因为Text属性返回一个字符串对象,而a变量是一个int,所以您需要解析Text属性,并可能在测试之前将其分配给第二个局部变量。您可以像上面那样使用Int32.Parse,但我建议使用Int32.TryParse(textBox1.Text, out A),以便在文本不是有效的数字格式时不会引发异常。

问题1,你的if (textBox1.Text=A)应该是类似于if(textbox1.Text==A.ToString())

经典赋值/相等错误

,但即使这是奇怪的,我不知道为什么你要解析textBox1的值为int,然后看看如果解析int的值等于你刚刚解析?完全奇数。您已经在作用域外定义了int A,并在作用域内再次声明了它。如果您试图判断新值是否等于旧值,您可以限定if(a==this.A)。或者做同样的事情,将本地的int调用为其他的东西。

但是总的来说,这个程序很奇怪,我甚至不太确定你在问什么。