C#listbox从另一个表单添加数据

时间:2014-03-08 00:24:39

标签: c# forms listbox

我是一名C#学生,我对我的中期项目有点困惑。

我放弃了我的项目和规范:https://www.dropbox.com/sh/eo5ishsvz4vn6uz/CE3F4nvgDf

如果你运行该程序,它将会到达我离开的最后一个区域..

private void btnAddScore_Click(object sender, EventArgs e)
{
  for (int i = 0; i < 3; i++)
  {  
  tempScore = Convert.ToDecimal(txtScore.Text);
  Form1.scoreList = tempScore; (was Form1.scoreList[i] = tempScore;)
  }
  txtScoresList.Text += Convert.ToString(tempScore) + " ";
}

有一个主要表单,一个辅助添加表单,第三个和第四个表单,所有控件都已到位,只是布线是剩下的。

(1)在上面的代码中,应该有3个分数传递给主表单,它与学生姓名字符串一起填充主表单上的ListBox。我无法弄清楚如何访问该ListBox,只要我输入“listStudents”就没有任何反应。

(2)当我点击“添加”按钮1次时,我也不确定如何限制只有3分的输入,这意味着我知道我的for循环可能是完全错误的。我不知道是否应该将这些分数保存到数组,列表或单个变量中,因为它可以是3(或更多,但3是很好)分数。

(3)当我在AddNewStudent表单上点击“OK”时,我是否在那里编写代码来填充主表单ListBox,还是以主表单形式进行?

更新

private void Form1_Load(object sender, EventArgs e)
{
    lbStudents.Items.Clear();
    //something like
    foreach (decimal i in scoreList2)
        {
            scoreList = scoreList2.ToString(); //gives me a cannot implicitly convert error
        }
    lbStudents.Items.Add(tempInfo1 + " " + scoreList2);
}
//I want the listbox to populate like "Name - |100| |90| |80|"

这个代码在我看来是正确的,因为要填充ListBox,但我不确定如何将列表的全部内容添加到字符串中,然后将其添加到列表框中。

1 个答案:

答案 0 :(得分:0)

这将使您的代码构建和运行。

在form1

中更改以下声明
public static decimal[] scoreList = new decimal[3];

public static List<decimal> scoreList = new List<decimal>();

并将您的btnAddScore_Click处理程序更新为

 //save scores to temp static var, populate noread txtbox txtScoresList with scores
for (int i = 0; i < 3; i++)
{   
    //save score to static var for trans-form data sending      
    tempScore = Convert.ToDecimal(txtScore.Text);
    Form1.scoreList.Add(tempScore);

}

其余的并不太难,你应该能够解决它。