名称“ svar”在当前上下文中不存在

时间:2019-10-06 09:52:57

标签: c#

我对编程很陌生,我正在为我的编程课编写一个简短的子手游戏,我有两个私人的空白,一个是当您更改文本框中的文本以获取正确答案时,一个是当您猜测一个字符时。我需要将变量“ svar”从第一个实例转移到另一个实例,当我尝试在第二个实例中使用变量“ svar”时,我收到错误消息“当前上下文中不存在名称“ svar””

public partial class Form1 : Form
    {      
        public Form1()
        {
            InitializeComponent();
        }

        private void TbxSvar_TextChanged(object sender, EventArgs e)
        {
            if (tbxSvar.TextLength == 6)
            {
                pbxGubbe.Top = 6;
                tbxVisa.Text = "??????";
                tbxGissa.Enabled = true;
                string svar = tbxSvar.Text;
                tbxSvar.Text = "";
            }
            else
            {

                tbxVisa.Text = "";
            }

        }

        private void TbxGissa_TextChanged(object sender, EventArgs e)
        {
            if (tbxGissa.Text == "") return;
            string gissning = tbxGissa.Text;
            int index = svar.indexOf(gissning);

        }
    }

1 个答案:

答案 0 :(得分:1)

您已将svar定义为方法中的变量,因此它将在其他位置不可见(除非您将其作为方法参数传递)。而是在您的课程中将其定义为 field

public partial class Form1 : Form
    {      
        string svar;  // <----------- place here.  Now it is a 'field'

        public Form1()
        {
            InitializeComponent();
        }

        private void TbxSvar_TextChanged(object sender, EventArgs e)
        {
            if (tbxSvar.TextLength == 6)
            {
                pbxGubbe.Top = 6;
                tbxVisa.Text = "??????";
                tbxGissa.Enabled = true;
                svar = tbxSvar.Text;  // <---------- use svar here
                tbxSvar.Text = "";
            }
            else
            {

                tbxVisa.Text = "";
            }

        }

        private void TbxGissa_TextChanged(object sender, EventArgs e)
        {
            if (tbxGissa.Text == "") return;
            string gissning = tbxGissa.Text;
            int index = svar.indexOf(gissning); // <---------- ...and here

        }
    }