2014-03-07 30 views
1

我想通过通过列表< int>的ScoresList ------------------------------ ----- V传递参数虽然事件处理程序

private void lstStudents_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     int target = lstStudents.SelectedIndex; 
     if (target != -1) 
     { 
      Student student = (Student)students[target]; 
      txtScoreCount.Text = Convert.ToString(ScoresList.Count); 
     } 
    } 

要访问----------------------------------- ------------------------------------------- ^我的分数名单。

当我这样做,我可以访问我的ScoresList,但是,我得到一个“

没有重载 'lstStudents_SelectedIndexChanged' 匹配委托 'System.EventHandler'。

错误在我的设计器中更具体地位于此处

this.lstStudents.SelectedIndexChanged += new System.EventHandler(this.lstStudents_SelectedIndexChanged); 

我不知道要在这里放什么来解决问题即因为我在这里,我假设我不应该通过我的事件传递参数?我该如何解决这个问题?

+0

我也试过: txtScoreCount.Text = Convert.ToString(Student.ScoresList.Count) 现在我得到一个对象引用需要非静态字段....没有帮助我虽然。 – user3390729

回答

1

添加参数的事件处理程序不有道理。想想谁负责传递参数值?事件处理程序在发生相应事件时被系统调用。还需要遵循特定预定义签名的事件处理程序方法,并添加参数更改方法签名,因此您得到了该错误消息。

可能的解决办法是声明ScoresList为全局变量,所以它会在同一个范围访问翻过方式,包括你的事件处理程序方法。

private List<int> ScoresList = new List<int>(); 

private void lstStudents_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    int target = lstStudents.SelectedIndex; 
    if (target != -1) 
    { 
     Student student = (Student)students[target]; 
     txtScoreCount.Text = Convert.ToString(ScoresList.Count); 
    } 
} 
+0

Sooooo,关闭。我的问题是如何从另一个列表中列出 ScoresList正确的列表 ScoresList。在我的课的学生,我可以访问每一个人名单,然而,上榜 ScoresList在我的Form1的代码被证明更加困难。我想要选择的学生成绩进行统计和显示。 – user3390729

+0

想通了!使用全局声明创建一个空列表 ScoresList。然后能够使用我的目标变量从我的学生集合中选择哪个学生(不包括代码)。 txtScoreCount.Text = Convert.ToString(学生[靶标] .ScoresList.Count); – user3390729

+0

没有投票给你,虽然= /我还不够酷。 – user3390729

相关问题