簡體   English   中英

列表框選擇更新文本框

[英]listbox selection update textbox

在列表框中選擇一個項目后,需要用小數位數更新3個文本框。

鏈接到文件: https : //www.dropbox.com/s/xj2efe5sxsolswk/midterm.zip

列表框中的格式:“名稱| XX | | XX | | XX |” 例如“ Matt | 100 | | 90 | | 80 |”

如何從列表框中調出與所選索引關聯的3個值,以計算3個值並更新與該列表框選擇關聯的3個文本框?

我創建了3個列表來嘗試存儲所需的內容。 我將分數輸入保存到scoreList2,但是不確定將其與ListBox關聯時如何鏈接它們。

    public static List<string> scoreList = new List<string>();
    public static List<decimal> scoreList2 = new List<decimal>();
    public static List<object> scoreList3 = new List<object>();

碼:

    private void Form1_Load(object sender, EventArgs e)
    {
        (all hard coded cuz I'm a noob)
        //txtScoreTotal.Text = tempNum1.ToString();
        //txtScoreTotal.text = 
        //txtScoreCount.Text = tempNum2.ToString();
        //txtAverage.Text = tempNum3.ToString();

        lbStudents.Items.Add(tempInfo1 + " " + tempNum1 + " " + tempNum2 + " " + tempNum3);

    }

    private void lbStudents_SelectedIndexChanged(object sender, EventArgs e)
    {
        /*
        txtScoreTotal.Text = tempNum1.ToString();
        //txtScoreTotal.Text = selected listbox scoretotal
        txtScoreCount.Text = tempNum2.ToString();
        //txtScoreTotal.Text = selected listbox scorecount
        txtAverage.Text = tempNum3.ToString();
        //txtSCoreTotal.Text = selected listbox average
         */

        txtScoreTotal.Text = lbStudents.SelectedItem.ToString();

    }

您可以像這樣使用String.Split方法和LINQ

private void lbStudents_SelectedIndexChanged(object sender, EventArgs e)
{
   if(lbStudents.SelectedItem != null)
   {
       decimal result;
       var numbers = lbStudents.SelectedItem.ToString()
       .Split(new [] { '|' }, StringSplitOptions.RemoveEmptyEntries)
       .Where(x => decimal.TryParse(x, out result))
       .ToList();

       txtBox1.Text = numbers[0];
       txtBox2.Text = numbers[1];
       txtBox3.Text = numbers[2];
   }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM