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

输入字符串的格式不正确

束高雅
2023-03-14

我是C#的新手,我有一些Java方面的基础知识,但我不能让这段代码正常运行。

它只是一个基本的计算器,但当我运行程序时,VS2008给了我这个错误:

我做了几乎相同的程序,但在Java使用的是JSwing,它运行得非常好。

下面是C#的形式:

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 calculadorac
{
    public partial class Form1 : Form
    {

    int a, b, c;
    String resultado;

    public Form1()
    {
        InitializeComponent();
        a = Int32.Parse(textBox1.Text);
        b = Int32.Parse(textBox2.Text);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        add();
        result();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        substract();
        result();
    }

    private void button3_Click(object sender, EventArgs e)
    {
        clear();
    }

    private void add()
    {
        c = a + b;
        resultado = Convert.ToString(c);
    }

    private void substract()
    {
        c = a - b;
        resultado = Convert.ToString(c);
    }

    private void result()
    {
        label1.Text = resultado;
    }

    private void clear()
    {
        label1.Text = "";
        textBox1.Text = "";
        textBox2.Text = "";
    }
}

会有什么问题?有没有办法解决?

PS:我也试过

a = Convert.ToInt32(textBox1.text);
b = Convert.ToInt32(textBox2.text);

但没有奏效。

共有1个答案

邹俊豪
2023-03-14

该错误意味着试图解析整数的字符串实际上不包含有效的整数。

创建表单时,文本框不太可能立即包含有效的整数--这是您获取整数值的地方。在按钮单击事件中更新AB会更有意义(与在构造函数中更新的方式相同)。此外,请查看int.tryparse方法-如果字符串实际上可能不包含整数,则使用它要容易得多-它不会引发异常,因此更容易恢复。

 类似资料:
  • 问题内容: 我在JSF支持bean中具有以下方法: 我在数据表中显示此: 但是我得到以下异常: 它是怎么引起的,我该如何解决?\ 问题答案: 所以, 导致此: 您是否正在运行您认为正在运行的代码?的参与在堆栈跟踪指示是 实际上 像一个数组。数组值只能通过像整数索引来获得,但你用字符串访问它作为导致了这一例外。 确保返回,而不是,并且已将的正确版本声明为托管Bean。

  • 我试图写一个快速的程序,在输入的字符串中计数空格的数量。这是我到目前为止所拥有的: while循环首先使用s.indexOf(“”)查找字符串s中的第一个空格,将其替换为char Z,然后将值SpaceCount加1。此过程重复,直到s.indexOf没有找到空白,导致i为-1,从而停止循环。 换句话说,每次找到空白时,SpaceCount都会增加1,然后向用户显示空白的总数。或者应该是... 问

  • 主要内容:字符串的输出,字符串的输入其实在《 C语言输入输出》一章中我们已经提到了如何输入输出字符串,但是那个时候我们还没有讲解字符串,大家理解的可能不透彻,所以本节我们有必要再深入和细化一下。 字符串的输出 在C语言中,有两个函数可以在控制台(显示器)上输出字符串,它们分别是: puts():输出字符串并自动换行,该函数只能输出字符串。 printf():通过格式控制符输出字符串,不能自动换行。除了字符串,printf() 还能输

  • 问题内容: 我正在处理一个包含坐标x,y,z的文本文件 每行使用 处理完数据后,我需要将坐标写回到另一个txt文件中,以便使每一列中的项目(以及输入文件)都正确对齐。每行由坐标组成 C ++中是否有任何类似操纵器的控件可以设置宽度和对齐方式? 问题答案: 使用更新的语法尝试这种方法: 以下是使用旧语法(对不支持的旧版Python有用)的方法:

  • 我已经做了这个程序,我被卡住了。当我运行它时,我的输入没有使用空格,它工作得很好,例如,在customer input中只输入。但是,当我输入时,它会合并接下来的两个字符串输入方向(如所附的pic所示)。我在这里做错了什么?

  • 我正在用一种形式做一个简单的插入。 no_text dbname_m_db 我想回去看看。所以我要做4个测试,它们是 测试1:插入no_text 测试2:插入no_text_external 测试3:不插入任何文本 测试4:不同时插入两个 所以结果是,只有test3是成功地查看它。而其他3返回错误号格式例外:对于输入字符串:""。我不知道过滤它的最佳方法。这里的代码,我的工作。任何想法?