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个答案算作一个?
应该很简单,但是我刚刚崩溃了,无法解决这个问题。
我不知道你想做什么,但是你似乎把赋值操作符(=)和相等操作符(==)混在一起了。如果要将文本框的内容与值进行比较,则应使用相等运算符:
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调用为其他的东西。
但是总的来说,这个程序很奇怪,我甚至不太确定你在问什么。