![](/img/trans.png)
[英]How to implement IWindowsFormsEditorService in C# ? a.k.a Simulating In-Place Editing in Windows Forms
[英]Simulating snowfall in Windows Forms C#
我是C#的新手,我想使用Windows窗体在C#中创建类似落雪(点)的内容。
我已经能够在屏幕顶部创建雪花(我想每隔0,1s在Form的随机x位置创建一个新的点,然后将每个雪花的位置记入List(Point)和计时器(0,1秒),我希望雪花将其位置向下移动3px,向右更改1-3px)
但是我有刷新雪花位置的问题。 我不知道如何访问列表中的每个雪花以随机化其新位置。 我尝试了foreach,但是它给了我错误,即我无法在foreach中更改变量。
例:
foreach (var snowflake in snowflakeList)
{
snowflake.Y += 3;
snowflake.X += moveRandom.Next(1, 4);
}
谁能告诉我如何将雪花的List(Point)划分为单个雪花,以便可以分别更改每个点的位置?
谢谢 :-)
最简单的方法就是使用集合的索引:
for (int i = 0; i < snowflakeList.Count; i++)
{
var snowflake = snowflakeList[i];
snowflake.Y += 3;
snowflake.X += moveRandom.Next(1, 4);
snowflakeList[i] = snowflake;
}
当安德鲁斯回答使用for循环时,但是由于列表是点(值类型),因此您需要直接在列表中引用点,而不是对其进行复制:
for (int i = 0; i < snowflakeList.Count; i++)
{
snowflakeList[i].Y += 3;
snowflakeList[i].X += moveRandom.Next(1, 4);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.