gpt4 book ai didi

c# - 无法在列表中添加元素(在 C# 中)

转载 作者:行者123 更新时间:2023-12-04 14:39:09 24 4
gpt4 key购买 nike

下面的代码我想将鼠标点击的坐标添加到列表中(我想在图片框中的不同位置点击 4 次)并且我想将鼠标点击的坐标存储在列表中
但是这个函数只在列表中存储最后一个坐标(新坐标替换为最后一个坐标,不能添加到列表末尾)。我的列表总是只有一个元素
(在列表中点击 4 次需要有 4 个坐标)
(每次点击后,我在 textbox3 中有新坐标,我也从 List < Point > in list 使用,结果相同)
感谢您的帮助

    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
List<String> myPoints = new List<String>();
textBox3.Text = e.X + " , " + e.Y;
myPoints.Add(textBox3.Text);

}

最佳答案

在每个 MouseDown 上,您声明并初始化您的列表 - 因此您需要将它移到此方法之外 - 以便在此函数的范围结束后它不会被破坏,并且不会被重新初始化覆盖。
当你在一个范围内声明一个变量时——在这种情况下是一个 pictureBox1_MouseDown 方法的范围,一旦函数完成,它就会被销毁。
此外,如果您要在函数外部声明一个变量,但在函数内部对其进行初始化,如下所示:

List<String> myPoints;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
myPoints = new List<String>();
textBox3.Text = e.X + " , " + e.Y;
myPoints.Add(textBox3.Text);
}
它不会被销毁,但它的内容会被删除,所以你最终会得到一个空列表。所以你需要这样做:
List<String> myPoints = new List<String>();
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
textBox3.Text = e.X + " , " + e.Y;
myPoints.Add(textBox3.Text);
}

关于c# - 无法在列表中添加元素(在 C# 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69279952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com