黑马程序员技术交流社区

标题: winform求和练习中的问题 [打印本页]

作者: 千年虫    时间: 2011-11-28 12:34
标题: winform求和练习中的问题
本帖最后由 千年虫 于 2011-11-28 14:06 编辑

求和中代码有一句:i3=i1+i2;
求和练习代码是:
string str1=textBox1.Text;
string str2=textBox2.Text;
int i1,i2;
if(int.TryPasre(str1,out i1)==false)
{
    MessageBox.Show("第一个数不是合法整数");
    return;
}
if(int.TryPasre(str2,out i2)==false)
{
    MessageBox.Show("第二个数不是合法整数");
    return;
}
int i3=i1+i2;
textBox3.Text=Convert.ToString(i3);


我想问的是,如果我要把运算符+号 换成可以任意输入加减乘除该怎么弄呢
作者: 杨本国    时间: 2011-11-28 12:50
本帖最后由 杨本国 于 2011-11-28 12:54 编辑

可以添加一个textbox控件,定义一个变量接受你输入的运算符,然后根据接收到的运算符,可以用switch,case解决
作者: 刘景发    时间: 2011-11-28 12:58
可以尝试用组合框,在组合框的Items集合中写上“+”“-”“*”“/”(要分四行写):
我刚写的代码,可以参考下:
private void button1_Click(object sender, EventArgs e)
        {
            string str1 = textBox1.Text;
            string str2 = textBox2.Text;
            double a = Convert.ToInt32(str1);
            double b = Convert.ToInt32(str2);
            double result;
            switch (comboBox1.SelectedIndex)
            {
                case 0://加
                    result = a + b;
                    break;
                case 1://减
                    result = a - b;
                    break;
                case 2://乘
                    result = a * b;
                    break;
                case 3://除
                    if (b == 0)
                    {
                        MessageBox.Show("除数不能为0,请重新输入!");
                    }
                    result = a / b;
                    break;
                default://防患于未然
                    throw new Exception("未知的运算符!");
            }
            textBox3.Text = Convert.ToString(result);
        }
有不懂的可以再问我:)
作者: 王绚文    时间: 2011-11-28 13:00
加一个conmbox 里面写上运算符
然后运算的时候 用个switch case就可以了
或者写一个textbox 由用户自行输入运算符
然后你再判断用户输入的运算符 再运算出结果来
作者: 周敏_.net    时间: 2011-11-28 13:04
学习视频里面WinForm基础】8练习6这个视频里面杨老师讲了一个简单的四则运算是用复选框ComboBox里面保存运算符在通过switch,case来分别判断。
我还安计算器的方法做了一个,不过水平很差做的很水,通过Button点击之后传值到textBox里面,在通过if条件判断textBox.text.IndexOf(“+”)就按照+法运算在把值传到textBox中
作者: 千年虫    时间: 2011-11-28 13:53
本帖最后由 千年虫 于 2011-11-28 13:54 编辑
刘景发 发表于 2011-11-28 12:58
可以尝试用组合框,在组合框的Items集合中写上“+”“-”“*”“/”(要分四行写):
我刚写的代码,可以参考 ...


额,,回复错地方了,,
作者: 千年虫    时间: 2011-11-28 13:57
刘景发 发表于 2011-11-28 12:58
可以尝试用组合框,在组合框的Items集合中写上“+”“-”“*”“/”(要分四行写):
我刚写的代码,可以参考 ...

comboBox还没学,怎么用,我按你这个代码可以运行,但添数运算就会出问题:
未处理的“System.Exception”类型的异常出现在 WFpracitice.exe 中。
其他信息: 未知的运算符

comnboBox那里是输入0,1,2,3,,还是点小三角出来的,是不是comboBox还有什么属性要改的
作者: 千年虫    时间: 2011-11-28 13:59
周敏_.net 发表于 2011-11-28 13:04
学习视频里面WinForm基础】8练习6这个视频里面杨老师讲了一个简单的四则运算是用复选框ComboBox里面保存运 ...

我才看第二个视频呢,,看来得抓紧看了。。。
作者: 千年虫    时间: 2011-11-28 14:05
问题解决了,,,原来后面的视频里有讲解,,,,谢谢大家的回复。。。
作者: 千年虫    时间: 2011-11-28 14:07
杨本国 发表于 2011-11-28 12:50
可以添加一个textbox控件,定义一个变量接受你输入的运算符,然后根据接收到的运算符,可以用switch,case ...

恩,,,
当时我没想到用switch做
作者: 刘景发    时间: 2011-11-28 14:19
本帖最后由 刘景发 于 2011-11-28 14:19 编辑

不好意思,我没明白你的意思理解错了,当时我看到你的问题就立马用我ComboBox练习了下,可以用我上面的方法做个简单的计算器!{:soso_e100:}
作者: 刘景发    时间: 2011-11-28 14:22
千年虫 发表于 2011-11-28 13:57
comboBox还没学,怎么用,我按你这个代码可以运行,但添数运算就会出问题:
未处理的“System.Exception ...

在组合框控件的Items属性里设置,有三个小点那个属性




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2