我不知道如何在文本框中添加值。 这是代码:
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();
}
但它不承认它。错误是:在此上下文中不存在名称“得分”。我怎样才能做到这一点?
谢谢。
答案 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)
变量/对象得分的范围是问题 您正在尝试访问范围有限的变量(仅限功能级别)
只需创建一个私有变量分数,就可以通过该类访问它。