我是 C# 初学者,我遇到了如下问题,但我不确定是什么原因导致的或如何修复它。有经验的码农请帮忙。
我有一个Dictionary
在 Form1 中,但我想从 Form2 设置它的值。然而,赋值后,MessageBox
结果仍然显示0;
Form1: msgbox 显示结果 = 0
public Form1()
{
InitializeComponent();
bidcoords["TEST"] = 0;
}
public Dictionary<string, int> bidcoords = new Dictionary<string, int>();
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show(bidcoords["TEST"].Value.ToString());
}
Form2:
Form1 form1 = new Form1();
private void button2_Click(object sender, EventArgs e)
{
form1.bidcoords["TEST"] = 30;
}
Form1 form1 = new Form1();
您正在创建 Form1 的全新对象。相反,您需要将 form1 的现有实例传递给 from2。但我建议您仅传递字典对象而不是表单
public class Form2 : Form
{
public Dictionary<string, int> Bidcoords {get; set;}
private void button2_Click(object sender, EventArgs e)
{
if(Bidcoords != null && Bidcoords.ContainsKey("TEST"))
Bidcoords["TEST"] = 30;
}
}
public class Form1: Form
{
public void ShowForm2()
{
Form2 form = new Form2{Bidcoords = bidcoords ;}
form.ShowDialog();
MessageBox.Show(bidcoords["TEST"].Value.ToString());
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)