[英]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.