0
所以我有Combo Box
,我有一个使用KeyValuePair<int, decimal>
制作的列表。我希望我选择的文本框在我从下拉式文本框中选择时根据键显示值。从ComboBox Dropdown中选择后文本框不显示值
相关代码:
// Make a list of truck weight and MPG.
List<KeyValuePair<int, decimal>> weightMPG = new List<KeyValuePair<int, decimal>>();
private void mainForm_Load(object sender, EventArgs e)
{
decimal k = 7;
for (int i = 20000; i < 40000; i+=1000){
weightMPG.Add(new KeyValuePair<int, decimal>(i, k));
k -= 0.1m;
}
for (int i = 40000; i < 45000; i+=1000){
weightMPG.Add(new KeyValuePair<int, decimal>(i, 5));
}
weightMPG.Add(new KeyValuePair<int, decimal>(46000, 4.9m));
weightMPG.Add(new KeyValuePair<int, decimal>(47000, 4.8m));
weightMPG.Add(new KeyValuePair<int, decimal>(48000, 4.7m));
truckWeight2.DataSource = weightMPG;
truckWeight2.ValueMember = "Value";
truckWeight2.DisplayMember = "Key";
}
private void truckWeight2_SelectedIndexChanged(object sender, EventArgs e)
{
truckMPG2.Text = truckWeight2.ValueMember;
}
对于这段代码,它显示了从20,000到48,000下拉当我点击控制。但是,当我选择一个时,文本框(truckMPG2
)不会更新以反映该值,而是始终显示单词“值”。
我在查看其他堆栈溢出的答案时,使这个代码,所以我不知道我错了。
也许它会清除掉,但我基本上要在文本框中显示相应的十进制数。例如20,000 - > 7; 21,000-> 6.9等。我不知道为什么我将ValueMember设置为Value,我只是尝试从SO答案中获得东西。 – Annabelle
@Annabelle:等等,当您将'.ValueMember'设置为'“Value”时,列表是否不显示正确的值?更改选择时,“.SelectedValue”是什么?不要从Stack Overflow的答案中复制/粘贴代码。特别是写执行你想要执行的操作的语句。如果您不确定给定语句的作用,请查看文档并在调试器中对其进行试验,以了解其功能。 – David
列表本身显示正确的成员(键)。然而,我想要的值的文本框(例如7,6.9..etc)仅显示单词“值”。也使用'.SelectedValue;'时,我只是得到一个铸造错误。 – Annabelle