测试以查看是否已选择列表框项

时间:2014-11-09 23:57:24

标签: c#

我有一个表单,可以在列表框中加载3个预定义的分数。我想将选定的分数转换为字符串,然后在文本框中输出该字符串。到目前为止,我认为我已将项目转换为字符串,并尝试将其设置为文本框,但它似乎没有工作。

private void frmStudentScores_Load(object sender, EventArgs e)
        {
            lstStudents.Items.Clear();
            lstStudents.Items.Add("Joe Smith|93|92|98");
            lstStudents.Items.Add("Mike Jones|56|61|33");
            lstStudents.Items.Add("Rita Jackson|100|89|96");
            lstStudents.SelectedIndex = 0;
            if (this.lstStudents.SelectedIndex >= 0)
            {
                string a = lstStudents.Items.Cast<string>().ToString();
                txtDisplay.Text = a;
            }
            btnUpdate.Enabled = false; 

2 个答案:

答案 0 :(得分:0)

由于这是加载时的过程,为什么不试试:

private void frmStudentScores_Load(object sender, EventArgs e)
        {
            lstStudents.Items.Clear();
            lstStudents.Items.Add("Joe Smith|93|92|98");
            lstStudents.Items.Add("Mike Jones|56|61|33");
            lstStudents.Items.Add("Rita Jackson|100|89|96");
            lstStudents.SelectedIndex = 0;
            txtDisplay.Text = lstStudents.Items[0].ToString();
            btnUpdate.Enabled = false; 

修改

然后在列表框的事件SelectedIndexChanged中添加:

private void lstStudents_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtDisplay.Text = lstStudents.Items[lstStudents.SelectedIndex].ToString();
        }

答案 1 :(得分:0)

假设您的问题与Windows窗体有关,获取所选项目的一种方法是使用以下代码:

txtDisplay.Text =lstStudents.SelectedItem.ToString();

通常希望获取用户选择的所选项目,为此,您需要将上述代码放在事件中,例如:

private void lstStudents_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtDisplay.Text = this.lstStudents.SelectedItem.ToString();
        }

事件可以通过代码或通过VS IDE连接到控件,您不能只复制和粘贴上面的代码。问你,如果你不知道该怎么做。

如果您只想获取第一项,则上述Plutonix评论适用。您不需要IF语句。