none
我是初学者,拜托各位老师了 RRS feed

  • 问题

  • 我是一名C#初学者 我创建好的windows窗口应用程序在调试时老是提示: 当前上下文中不存在名称“remainder”等错误,请问高手是什么原因嗯?是不是因为没有定义啊但是我定义了还是不行啊

    2010年10月10日 5:01

答案

  • 显示的错误都是没有这个名称的控件造成, 没有的就加上,(Name)里写上名称

     

            uint remainder;//余数,秒数
            uint minute;
            uint second;
            string msg;

     

    这段别放在Public Form1()里,会找不到变量


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 2:36
  • //这段去掉

    public Form1()
            {

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
            }

     

    //留这个
    public Form1()
        {
          InitializeComponent();
        }

     

    不能写2个构造函数


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 4:38
  • 谢谢各位老师的帮助,我发现我越改问题就越多,估计还是我对C#掌握太少的缘故,有很多地方都不了解,这次麻烦老师了


    DEAR

    你必须找本基础书来熟读,这样至少可以避免一些基本的问题


    秘訣無它,唯勤而已
    2010年10月15日 7:53

全部回复

  • 我是一名C#初学者 我创建好的windows窗口应用程序在调试时老是提示: 当前上下文中不存在名称“remainder”等错误,请问高手是什么原因嗯?是不是因为没有定义啊但是我定义了还是不行啊

    dear,
    可能是变量没有初始化,给变数来个预设值吧,试试看
    string remainder="";

    秘訣無它,唯勤而已
    2010年10月10日 14:37
  • 应该是变量没有声明就开始使用了。这应该是一个求余数的例子吧,检查一下所有的变量是不是在使用它之前已经被声明。
    Mark Zhou
    2010年10月11日 9:14
  • 谢谢老师,但是我还是不太懂,我写的是一个WINDOWS窗口一个倒计时的应用程序,详细代码如下

    namespace 计时器
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
             

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
                InitializeComponent();
            }

            private void label1_Click(object sender, EventArgs e)
            {
               

            }

            private void label4_Click(object sender, EventArgs e)
            {
               
            }

            private void Form1_Load(object sender, EventArgs e)
            {
               
            }

            private void Form1_Activated(object sender, EventArgs e)
            {
             
               
            }

            private void maskedTextBox3_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == '\r')    //按Enter键执行下面的代码(开始计时)
                    if (txtNumber.Text == "")
                        return;
                remainder = Convert.ToUInt32(txtNumber.Text) * 60;  //将分钟换算成秒
                timer2.Enabled = false;  //.Enabled启用,有效的
                timer1.Enabled = true;
                labelTimeEnd.Visible = true;  //显示控件  (Visible 看得见的)
                txtTimeEnd.Visible = true;
                lblTimeStart.Text = "开始时间:";  //更换标签标题
            }

            private void timer2_Tick(object sender, EventArgs e)
            {  //在TxtTimestart文本框中显示时间
                txtTimeStart.Text = DateTime.Now.Hour.ToString() + ":"
                    + DateTime.Now.Minute.ToString() + ":"
                    + DateTime.Now.Second.ToString();
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                txtTimeEnd.Text= DateTime.Now.Hour.ToString() + ":"
                    + DateTime.Now.Minute.ToString() + ":"
                    + DateTime.Now.Second.ToString();
                remainder--;  //总秒数减一
                minute = remainder / 60;
                second = remainder % 60;
                if (second <= 10)
                    msg = "剩余时间:" + minute + "分0+second+秒";
                else msg = "剩余时间:" + minute +"分+second+秒";
                lblRemainder.Text = msg;    //将msg的信息在标签中显示
                if(remainder=0)
                {
                    Time1.Enabled=false;
                    lblRemainder.Text+="--时间到!";   //显示时间到的信息
                  
                }

            }

            private void button1_Click(object sender, EventArgs e)
            {
               
                lblRemainder.Text = "";   //清空lblRenainder标签
                txtNumber.Text = "";      //清空输入文本框
                txtNumber.Focus();       //输入文本框获得焦点
                timer2.Enabled = true;
                lblTimeEnd.Visible = false; //隐藏lblTimeEnd标签控件
                txtTimeEnd.Visible = false; //隐藏txtTimeEnd标签控件
               

            }
        }
    }

    提示错误如下:警告 1 声明了变量“remainder”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 18 18 计时器
    警告 2 声明了变量“minute”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 19 18 计时器
    警告 3 声明了变量“second”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 20 18 计时器
    警告 4 声明了变量“msg”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 21 20 计时器
    错误 5 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 50 21 计时器
    错误 6 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 52 13 计时器
    错误 7 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 52 42 计时器
    错误 8 当前上下文中不存在名称“labelTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 55 13 计时器
    错误 9 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 56 13 计时器
    错误 10 当前上下文中不存在名称“lblTimeStart” S:\VS2008\计时器\计时器\Form1.cs 57 13 计时器
    错误 11 当前上下文中不存在名称“txtTimeStart” S:\VS2008\计时器\计时器\Form1.cs 62 13 计时器
    错误 12 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 69 13 计时器
    错误 13 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 72 13 计时器
    错误 14 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 73 13 计时器
    错误 15 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 73 22 计时器
    错误 16 当前上下文中不存在名称“second” S:\VS2008\计时器\计时器\Form1.cs 74 13 计时器
    错误 17 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 74 22 计时器
    错误 18 当前上下文中不存在名称“second” S:\VS2008\计时器\计时器\Form1.cs 75 17 计时器
    错误 19 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 76 17 计时器
    错误 20 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 76 33 计时器
    错误 21 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 77 18 计时器
    错误 22 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 77 34 计时器
    错误 23 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 78 13 计时器
    错误 24 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 78 33 计时器
    错误 25 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 79 16 计时器
    错误 26 当前上下文中不存在名称“Time1” S:\VS2008\计时器\计时器\Form1.cs 81 17 计时器
    错误 27 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 82 17 计时器
    错误 28 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 91 13 计时器
    错误 29 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 92 13 计时器
    错误 30 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 93 13 计时器
    错误 31 当前上下文中不存在名称“lblTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 95 13 计时器
    错误 32 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 96 13 计时器

    2010年10月15日 2:14
  • 谢谢老师,但是我还是不太懂,我写的是一个WINDOWS窗口一个倒计时的应用程序,详细代码如下

    namespace 计时器
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
             

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
                InitializeComponent();
            }

            private void label1_Click(object sender, EventArgs e)
            {
               

            }

            private void label4_Click(object sender, EventArgs e)
            {
               
            }

            private void Form1_Load(object sender, EventArgs e)
            {
               
            }

            private void Form1_Activated(object sender, EventArgs e)
            {
             
               
            }

            private void maskedTextBox3_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == '\r')    //按Enter键执行下面的代码(开始计时)
                    if (txtNumber.Text == "")
                        return;
                remainder = Convert.ToUInt32(txtNumber.Text) * 60;  //将分钟换算成秒
                timer2.Enabled = false;  //.Enabled启用,有效的
                timer1.Enabled = true;
                labelTimeEnd.Visible = true;  //显示控件  (Visible 看得见的)
                txtTimeEnd.Visible = true;
                lblTimeStart.Text = "开始时间:";  //更换标签标题
            }

            private void timer2_Tick(object sender, EventArgs e)
            {  //在TxtTimestart文本框中显示时间
                txtTimeStart.Text = DateTime.Now.Hour.ToString() + ":"
                    + DateTime.Now.Minute.ToString() + ":"
                    + DateTime.Now.Second.ToString();
            }

            private void timer1_Tick(object sender, EventArgs e)
            {
                txtTimeEnd.Text= DateTime.Now.Hour.ToString() + ":"
                    + DateTime.Now.Minute.ToString() + ":"
                    + DateTime.Now.Second.ToString();
                remainder--;  //总秒数减一
                minute = remainder / 60;
                second = remainder % 60;
                if (second <= 10)
                    msg = "剩余时间:" + minute + "分0+second+秒";
                else msg = "剩余时间:" + minute +"分+second+秒";
                lblRemainder.Text = msg;    //将msg的信息在标签中显示
                if(remainder=0)
                {
                    Time1.Enabled=false;
                    lblRemainder.Text+="--时间到!";   //显示时间到的信息
                  
                }

            }

            private void button1_Click(object sender, EventArgs e)
            {
               
                lblRemainder.Text = "";   //清空lblRenainder标签
                txtNumber.Text = "";      //清空输入文本框
                txtNumber.Focus();       //输入文本框获得焦点
                timer2.Enabled = true;
                lblTimeEnd.Visible = false; //隐藏lblTimeEnd标签控件
                txtTimeEnd.Visible = false; //隐藏txtTimeEnd标签控件
               

            }
        }
    }

    提示错误如下:警告 1 声明了变量“remainder”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 18 18 计时器
    警告 2 声明了变量“minute”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 19 18 计时器
    警告 3 声明了变量“second”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 20 18 计时器
    警告 4 声明了变量“msg”,但从未使用过 S:\VS2008\计时器\计时器\Form1.cs 21 20 计时器
    错误 5 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 50 21 计时器
    错误 6 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 52 13 计时器
    错误 7 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 52 42 计时器
    错误 8 当前上下文中不存在名称“labelTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 55 13 计时器
    错误 9 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 56 13 计时器
    错误 10 当前上下文中不存在名称“lblTimeStart” S:\VS2008\计时器\计时器\Form1.cs 57 13 计时器
    错误 11 当前上下文中不存在名称“txtTimeStart” S:\VS2008\计时器\计时器\Form1.cs 62 13 计时器
    错误 12 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 69 13 计时器
    错误 13 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 72 13 计时器
    错误 14 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 73 13 计时器
    错误 15 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 73 22 计时器
    错误 16 当前上下文中不存在名称“second” S:\VS2008\计时器\计时器\Form1.cs 74 13 计时器
    错误 17 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 74 22 计时器
    错误 18 当前上下文中不存在名称“second” S:\VS2008\计时器\计时器\Form1.cs 75 17 计时器
    错误 19 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 76 17 计时器
    错误 20 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 76 33 计时器
    错误 21 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 77 18 计时器
    错误 22 当前上下文中不存在名称“minute” S:\VS2008\计时器\计时器\Form1.cs 77 34 计时器
    错误 23 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 78 13 计时器
    错误 24 当前上下文中不存在名称“msg” S:\VS2008\计时器\计时器\Form1.cs 78 33 计时器
    错误 25 当前上下文中不存在名称“remainder” S:\VS2008\计时器\计时器\Form1.cs 79 16 计时器
    错误 26 当前上下文中不存在名称“Time1” S:\VS2008\计时器\计时器\Form1.cs 81 17 计时器
    错误 27 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 82 17 计时器
    错误 28 当前上下文中不存在名称“lblRemainder” S:\VS2008\计时器\计时器\Form1.cs 91 13 计时器
    错误 29 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 92 13 计时器
    错误 30 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 93 13 计时器
    错误 31 当前上下文中不存在名称“lblTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 95 13 计时器
    错误 32 当前上下文中不存在名称“txtTimeEnd” S:\VS2008\计时器\计时器\Form1.cs 96 13 计时器

    2010年10月15日 2:17
  • 显示的错误都是没有这个名称的控件造成, 没有的就加上,(Name)里写上名称

     

            uint remainder;//余数,秒数
            uint minute;
            uint second;
            string msg;

     

    这段别放在Public Form1()里,会找不到变量


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 2:36
  • 显示的错误都是没有这个名称的控件造成, 没有的就加上,(Name)里写上名称

    请问老师您说在name 里写上名称 能说的详细一点吗 不好意思 我是初学者 麻烦您了

    2010年10月15日 3:06
  • 例如: 错误 7 当前上下文中不存在名称“txtNumber” S:\VS2008\计时器\计时器\Form1.cs 52 42 计时器

    创建一个textbox控件,然后在(Name)属性里写上 txtNumber,这样就行了


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 3:09
  • dear,
    看来您对变量的生命周其有很大的问题存在,这样的用法等于没声明
    先修正以下看看

    uint remainder;//余数,秒数 uint minute; uint second; string msg; public
    LaserMotion()
    {
    InitializeComponent();
    }


    秘訣無它,唯勤而已
    2010年10月15日 3:22
  • 修正了 显示的是 错误 1 方法必须具有返回类型 S:\VS2008\计时器\计时器\Form1.cs 23 20 计时器

    指的是LaserMotion

    2010年10月15日 3:34
  • 修正了 显示的是 错误 1 方法必须具有返回类型 S:\VS2008\计时器\计时器\Form1.cs 23 20 计时器

    指的是LaserMotion

    余小章,只是给你做了个示例, LaserMotion改成你自己的Form1

      public
     LaserMotion()
      {
       InitializeComponent();
      }

    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 3:39
  • 我自己的Form1 ?

    老师我有点笨的

    2010年10月15日 4:03
  •     uint remainder;//余数,秒数
        uint minute;
        uint second;
        string msg;
        Form1()
        {
          InitializeComponent();
        }
    


    秘訣無它,唯勤而已
    2010年10月15日 4:04
  • 我自己的Form1 ?

    老师我有点笨的

    你自己的源代码是这么写的

            public Form1()  //这个Form1
            {

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
                InitializeComponent();
            }


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 4:05
  • 是namespace 计时器
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
             

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
            }
                 public Form1()
        {
          InitializeComponent();
        }

    错误 1 类型“计时器.Form1”已定义了一个名为“Form1”的具有相同参数类型的成员 S:\VS2008\计时器\计时器\Form1.cs 23 21 计时器

     

    2010年10月15日 4:34
  • //这段去掉

    public Form1()
            {

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
            }

     

    //留这个
    public Form1()
        {
          InitializeComponent();
        }

     

    不能写2个构造函数


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 4:38
  • //这段去掉

    public Form1()
            {

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
            }

     

    //留这个
    public Form1()
        {
          InitializeComponent();
        }

     

    不能写2个构造函数


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#

    正确的说是不能有"两个相同参数群的方法,若方法名稱需要一樣叫重载,重载是指方法名称相同, 签名不一致(参数个数或类型不同)。

    比如下面的方法都叫ToString,但是允许同时存在。编译器根据实据调用时的类型选择相对应的方法原型
    Convert.ToString (Boolean) ;
    Convert.ToString (Byte) ;
    Convert.ToString (Char) ;
    Convert.ToString (DateTime) ;
    Convert.ToString (Int32) ;
    Convert.ToString (DateTime, IFormatProvider) ;

     


    秘訣無它,唯勤而已
    2010年10月15日 5:35
  • //这段去掉

    public Form1()
            {

                uint remainder;//余数,秒数
                uint minute;
                uint second;
                string msg;
            }

     

    //留这个
    public Form1()
        {
          InitializeComponent();
        }

     

    不能写2个构造函数


    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#

    正确的说是不能有"两个相同参数群的方法,若方法名稱需要一樣叫重载,重载是指方法名称相同, 签名不一致(参数个数或类型不同)。

    比如下面的方法都叫ToString,但是允许同时存在。编译器根据实据调用时的类型选择相对应的方法原型
    Convert.ToString (Boolean) ;
    Convert.ToString (Byte) ;
    Convert.ToString (Char) ;
    Convert.ToString (DateTime) ;
    Convert.ToString (Int32) ;
    Convert.ToString (DateTime, IFormatProvider) ;

     


    秘訣無它,唯勤而已
    Totally agree with u. 我没解释清楚

    If this is helpful
      { Please Mark as Answered }
    else if it is not helpful
      { Un-Mark as Answered }


    Best Regards
    Huan Li, Code Blog: Small is New Big In C#
    2010年10月15日 5:41
  • Huan Li

    我懂,我只是要在解释给楼主听^^

    没有别的想法噢


    秘訣無它,唯勤而已
    2010年10月15日 6:05
  • 谢谢各位老师的帮助,我发现我越改问题就越多,估计还是我对C#掌握太少的缘故,有很多地方都不了解,这次麻烦老师了
    2010年10月15日 6:46
  • 谢谢各位老师的帮助,我发现我越改问题就越多,估计还是我对C#掌握太少的缘故,有很多地方都不了解,这次麻烦老师了


    DEAR

    你必须找本基础书来熟读,这样至少可以避免一些基本的问题


    秘訣無它,唯勤而已
    2010年10月15日 7:53