如何在文本框C#中插入值

时间:2013-06-21 16:49:00

标签: c# winforms textbox

我不知道如何在文本框中添加值。 这是代码:

       private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
    {

        if (starecivilaComboBox.SelectedIndex == 0)
        {
            MessageBox.Show("This selection is not valid!");
        }
        else if (starecivilaComboBox.SelectedIndex == 1)
        {
            int score = 4;
        }
        else if (starecivilaComboBox.SelectedIndex == 2)
        {
            int score = 1;
        }
        else if (starecivilaComboBox.SelectedIndex == 3)
        {
            int score = 3;
        }
        else if (starecivilaComboBox.SelectedIndex == 4)
        {
            int score = 2;
        }

    }

我想在文本框中插入得分值,因此它会显示我从组合框中选择的每个项目的得分。 我试过这个:

        private void scoringTextBox_TextChanged(object sender, EventArgs e)
    {
        scoringTextBox.Text = score.toString();
    }

但它不承认它。错误是:在此上下文中不存在名称“得分”。我怎样才能做到这一点?

谢谢。

7 个答案:

答案 0 :(得分:4)

您必须在ComboBox SelectedIndexChanged处理程序之外声明变量得分。你在处理程序中声明它,它只在方法中使用,而不是在整个类中使用(在你的情况下不是整个形式)。

public class Form1
{
    int score = 0;
    //somewhere in the code
    score = 1; //there is no need to specify 'int' here - you will create an local variable with the same name then
}

我建议您learn through tutorials,因为问题很简单。

答案 1 :(得分:4)

尽管@psNytrancez答案对您来说最简单,但如果不了解变量的工作原理,您将无法在C#中取得进展。

问题在于如下所示的行:

else if (starecivilaComboBox.SelectedIndex == 1)
{
    int score = 4;
}

这意味着您创建了一个变量“score”,但该变量只存在于两个大括号“{”和“}”之间。为了实际保留一个值,您需要扩展其scope(指令视频)。如果您编辑所有这些行只是阅读

else if (starecivilaComboBox.SelectedIndex == 1)
{
    score = 4;
}

而是把它放在方法声明之外,就像这个

int score =0;

private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
   //the rest of the method.

然后你应该没事。

答案 2 :(得分:2)

这是因为你在starecivilaComboBox_SelectedIndexChanged方法中声明你的分数,所以它是该方法的本地,不能在它之外访问。

答案 3 :(得分:2)

如上所述,您必须在私人方法之外但在课堂内宣布分数。代码看起来应该类似于:

private int score = 0;

private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

    if (starecivilaComboBox.SelectedIndex == 0)
    {
        MessageBox.Show("This selection is not valid!");
    }
    else if (starecivilaComboBox.SelectedIndex == 1)
    {
        score = 4;
    }
    else if (starecivilaComboBox.SelectedIndex == 2)
    {
        score = 1;
    }
    else if (starecivilaComboBox.SelectedIndex == 3)
    {
        score = 3;
    }
    else if (starecivilaComboBox.SelectedIndex == 4)
    {
        score = 2;
    }

}

private void scoringTextBox_TextChanged(object sender, EventArgs e)
{
    scoringTextBox.Text = score.toString();
}

答案 4 :(得分:0)

 private void starecivilaComboBox_SelectedIndexChanged(object sender, EventArgs e)
{

    if (starecivilaComboBox.SelectedIndex == 0)
    {
        MessageBox.Show("This selection is not valid!");
    }
    else if (starecivilaComboBox.SelectedIndex == 1)
    {
        scoringTextBox.Text = "4";
    }
    else if (starecivilaComboBox.SelectedIndex == 2)
    {
        scoringTextBox.Text = "1";
    }
    else if (starecivilaComboBox.SelectedIndex == 3)
    {
        scoringTextBox.Text = "3";
    }
    else if (starecivilaComboBox.SelectedIndex == 4)
    {
        scoringTextBox.Text = "2";
    }

}

答案 5 :(得分:0)

在此之后执行

else if (starecivilaComboBox.SelectedIndex == 4)
    {
        int score = 2;
    }

添加此

scoringTextBox.Text = score.toString();

答案 6 :(得分:0)

变量/对象得分的范围是问题 您正在尝试访问范围有限的变量(仅限功能级别)

只需创建一个私有变量分数,就可以通过该类访问它。