3 回答
TA贡献1812条经验 获得超5个赞
由于 OP 是初学者,他可能不熟悉 OOP 概念,因此为了使您的简单项目使用字典,您需要做的就是Dictionary<string, string> Itemlist = new Dictionary<string, string>();在外部声明,List_Load以便变量范围覆盖整个List类。
前任:
Dictionary<string, string> Itemlist = new Dictionary<string, string>();
private void List_Load(object sender, EventArgs e)
{
Itemlist.Add("110011", "Bread - 1.49");
Itemlist.Add("110022", "Shampoo - 4.99");
Itemlist.Add("110033", "TV - 200.00");
}
正如您在上面看到的,我将参数的位置交换为 ,Add因为它接受一个键然后是值。我宁愿将“110011”作为我的键,而不是“Bread - 1.49”。
现在,如果您想从字典中获取值,您可以在应用程序的任何地方使用以下命令:
if (Itemlist.ContainsKey(key))
{
string value = Itemlist[key];
string[] split = value.Split('-');
string label = split[0].Trim();
double price = double.Parse(split[1]);
// do something
}
else
{
// do something?
}
TA贡献1804条经验 获得超3个赞
我认为在你的情况下,事件被触发
我试过了,它奏效了。
private void Form1_Load(object sender, EventArgs e)
{
textBox1.KeyDown += new KeyEventHandler(tb_KeyDown);
}
static void tb_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(" some junk");
}
}
TA贡献1900条经验 获得超5个赞
发生这种情况是因为您sum在listBox1_SelectedIndexChanged_1本地方法中定义了隐藏全局sum变量的变量。只需删除var关键字即可。您的方法应如下所示:
private void listBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
sum = listBox1.Items
.OfType<string>()
.Select(s => Convert.ToInt32(s.Split(new string[] { "-" }, StringSplitOptions.RemoveEmptyEntries)[1]))
.Sum();
}
- 3 回答
- 0 关注
- 196 浏览
添加回答
举报