我用C#做个很简单的倒计时,在textBox1中输入数据m,然后利用timer1控件,就m--倒计时啊。运行报错:无法将类型“string”隐式转换为“int”。所有代码都在下面了。大哥大姐教教我吧。谢谢。
 
int m;private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if(this.textBox1.Text != "")
            {
                m = this.textBox1.Text;
            }
        }private void timer1_Tick(object sender, EventArgs e)
        {
           
            m--;
            this.label2.Text = m.ToString()+"秒";
            label2.Refresh();
        } private void button1_Click(object sender, EventArgs e)
        {
            this .timer1.Enabled =true;
        }

解决方案 »

  1.   

    m = int.Parse(this.textBox1.Text);
      

  2.   


    private void textBox1_TextChanged(object sender, EventArgs e)
      {
      if(this.textBox1.Text != "")
      {
      m = Convert.ToInt32(this.textBox1.Text);
      }
      }private void timer1_Tick(object sender, EventArgs e)
      {
        
      m--;
      this.label2.Text = m.ToString()+"秒";
      label2.Refresh();
      } private void button1_Click(object sender, EventArgs e)
      {
      this .timer1.Enabled =true;
      }
      

  3.   

     m = int.Parse(this.textBox1.Text)
      

  4.   

     m = this.textBox1.Text; m =Iint.parse( this.textBox1.Text);
      

  5.   

    if(this.textBox1.Text != "")
      {
      m = this.textBox1.Text;
      }
    改成 m = Convert.ToInt32(this.textBox1.Text);
      

  6.   

    最好类似如此:if(!int.TryParse(this.textBox1.Text.Trim()),out m)
    {
       MessageBox.Show("textBox1中的数据不是合格的整型数据!"); 
       return;
    }
      

  7.   


    int.TryParse(textBox1.Text, out m);
      

  8.   

    错了。……if(!int.TryParse(this.textBox1.Text.Trim(),out m))
    {
       MessageBox.Show("textBox1中的数据不是合格的整型数据!"); 
       return;
    }
      

  9.   

    程序改为以下即可
    int m;private void textBox1_TextChanged(object sender, EventArgs e)
      {
      if(this.textBox1.Text != "")
      {
      m = int.Parse(this.textBox1.Text);
      }
      }private void timer1_Tick(object sender, EventArgs e)
      {
        
      m--;
      this.label2.Text = m.ToString()+"秒";
      label2.Refresh();
      } private void button1_Click(object sender, EventArgs e)
      {
      this .timer1.Enabled =true;
      }
      

  10.   

    你连Timer控件都知道,竟然不知道类型转换...
      

  11.   

    m = Convert.ToInt32(textBox1.Text);
      

  12.   

    m = int.Parse(this.textBox1.Text);int.TryParse(this.textBox1.Text.Trim(),out m);
      

  13.   

    m = int.Parse(this.textBox1.Text);int.TryParse(this.textBox1.Text.Trim(),out m);
    m=convert.ToInt32(this.textBox1.text);
      

  14.   

    m = this.textBox1.Text
    是不对的
      

  15.   

    m = int.Parse(this.textBox1.Text);
      

  16.   

    从文本框中取出的是string类型   要转换一下 m = int.Parse(this.textBox1.Text);
      

  17.   

     if(this.textBox1.Text != "")
      {
      m = this.textBox1.Text;
      }
    m为int型,
    this.textBox1.text需要强制类型转换下有int.parse
    m=int.parse(this.textBox1.Text)
      

  18.   

    加TRIM滤掉空格,不然可能还错,养成习惯吧。
    m = int.Parse(this.textBox1.Text.Trim());
      

  19.   

    m = Convert.ToInt32(textBox1.Text);
      

  20.   

    一个字符串转换,要考虑很多情况的
    忽略空格trim()
    是否能转换int.TryParse(string,out m)
      

  21.   

    m = int.Parse(this.textBox1.Text.Trim());
    或者
    m = Convert.ToInt32(textBox1.Text.Trim());
      

  22.   

    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
    Convert.ToInt32(this.textBox1.Text);
      

  23.   

    类型转换
    TextBox里的值是string类型的 需要转换成 int型
    楼上很多都已经给出代码
      

  24.   

    无法将类型“string”隐式转换为“int”
    看不懂这句话的意思?
      

  25.   

    string 到 int不能隐式转化,你需要显式转化.可以使用Convert.ToInt32()等.
      

  26.   

    m = int.Parse(this.textBox1.Text);
      

  27.   

    m = int.Parse(this.textBox1.Text);int.Parse(string str) 是将字符串转换为整型
    ToString()     是转换为字符串
      

  28.   

    m=Convert.ToInt32(this.TextBox1.text);
      

  29.   

    m = int.Parse(this.textBox1.Text)
      

  30.   

    if(this.textBox1.Text != "")
      {
      m = this.textBox1.Text;
      }
    m要转化一下,改为
    m = Convert.ToInt32(this.textBox1.Text);
      

  31.   

    int.parse或者int.tryparse
    Convert.toInt32
    都可以
      

  32.   

    if(this.textBox1.Text != "")
      {
    m = this.textBox1.Text;
      }
    改成 m = int.TryParse(this.textBox1.Text,out m);
      

  33.   

    m = Convert.ToInt32(this.textBox1.Text);
      

  34.   

    我通常都是 用 Convert.ToInt32()转换的
      

  35.   

    用Convert.ToInt32()吧。比int.parse要强!!
      

  36.   

    int.TryParse
    Convert.ToInt32
      

  37.   

    这个东西其实是最基本的东西,看来lz基本功确实不怎么样,建议lz在写程序之前先要把字符转换,权限控制,和各种声明的用法搞得清清楚楚。不然写程序的时候很难找得到自己哪里出现了问题,因为在你的知识库里面这个本来不是问题。所以才会出现小问题拜求的情况。
      

  38.   

    int.TryParse和
    Convert.ToInt32区别是什么?
      

  39.   

    int.TryParse 是尝试转换,不会报错,返回值是bool类型,参数为out int如果转换成功传入的参数将是被转换之后的值,返回true,转换失败则相反Convert.ToInt32是强制转换,如果参数转换不成功会抛异常具体的底层的区别我就不知道了
      

  40.   

    m = int.Parse(this.textBox1.Text)
      

  41.   

    int m;private void textBox1_TextChanged(object sender, EventArgs e)
      {
      if(this.textBox1.Text != "")
      {
      m =Convert.ToInt32( this.textBox1.Text);  }
      }private void timer1_Tick(object sender, EventArgs e)
      {
        
      m--;
      this.label2.Text = m.ToString()+"秒";
      label2.Refresh();
      } private void button1_Click(object sender, EventArgs e)
      {
      this .timer1.Enabled =true;
      } 
     
      

  42.   

    int.TryParse
    Convert.ToInt32
    这两种转换都OK
      

  43.   

    我习惯用convert.toint13(string str)
      

  44.   

    m = this.textBox1.Text;
      

  45.   

    int m;
    m = int.Parse(this.textBox1.Text);
      

  46.   

    private void timer1_Tick(object sender, EventArgs e)
      {
        
      m--;
      this.label2.Text = m.ToString()+"秒";
      label2.Refresh();
      }
     改成:
    private void timer1_Tick(object sender, EventArgs e)
      {
      int a=int.Parse(m);
      a--;
      this.label2.Text = a.ToString()+"秒";
      label2.Refresh();
      }
    注:m的值必须是数字,否则报错
      

  47.   

    如果以上都不行的,你可以将字符串转换成数组,然后根据ACSII值还换成整数
      

  48.   

    正解
    textBox.text是string 类型
      

  49.   

    1.m = int.Parse(this.textBox1.Text)
    2.m = Convert.ToInt32(this.textBox1.Text)
      

  50.   

    无法将类型“string”隐式转换为“int”。只是说不能隐式转换,并没有说不能显式转换
      

  51.   

    1.m = int.Parse(this.textBox1.Text)
    2.m = Convert.ToInt32(this.textBox1.Text)
      

  52.   

    C# 强类型的语言,不VB,不同的类型是需要强制转换的
      

  53.   

    推荐11楼,那个return可以不要