【发布时间】:2017-11-30 06:11:44
【问题描述】:
我正在尝试创建一个“自动颜色更改循环”,换句话说,当某人的鼠标悬停在标签上时,它会快速重复更改颜色,例如 300 微秒。
private void label1_MouseHover(object sender, EventArgs e)
{
while (true)
{
Random color = new Random();
Color randomColor = Color.FromArgb(color.Next(255), color.Next(255), color.Next(255)); label1.ForeColor = randomColor;
return;
}
}
问题出在循环中,或者我应该说缺乏循环,我假设 while(true) 本身就是一个循环,如果我将鼠标保持在同一个地方,只要它结束了它会起作用的标签,但它只起作用一次,简单来说,我必须将鼠标悬停在它上面,然后离开该区域,然后再次悬停,让它改变颜色两次,理想的是我可以让它总是改变颜色,所以我不必悬停,但我想不出办法做到这一点,因为我需要 while 循环。第二部分的任何想法都值得赞赏,但不是必需的:)
【问题讨论】:
-
如果你想让它改变鼠标在哪里,不要使用鼠标悬停,把它放在一个计时器里..另外,一个新的随机每个循环都是多余的..
-
循环在这里没用,因为你最后有一个return语句。
-
你
return生成第一个随机颜色后。所以while循环只执行一次然后退出。另外:您不会对随机生成的颜色randomColor做任何事情,因为您正在分配变量但从未使用它。 -
@BugFinder 老实说,我什至没有注意到随机性,哈哈,但是我怎么把它放在计时器中,我不是很好的编码器,只是为了好玩而编码:3
-
标签: c# winforms while-loop