我正在开发一个WordSearch拼图程序(也称为WordFind),你必须在其中找到大量字母中的某些单词.我正在使用C#WinForms.
我的问题是当我想点击并按住1个字母(Label
),然后拖到其他字母来改变它们ForeColor
.我试过谷歌搜索但无济于事.
这是我有的:
foreach (Letter a in game.GetLetters()) { this.Controls.Add(a); a.MouseDown += (s, e2) => { isDown = true; a.ForeColor = Color.Yellow; }; a.MouseUp += (s, e2) => { isDown = false; }; a.MouseHover += (s, e2) => { if (isDown) a.ForeColor = Color.Yellow; }; }
但是,除非未按住鼠标,否则MouseHover事件永远不会触发.还没有运气换MouseHover
用MouseEnter
.所以,我保留了MouseDown
和MouseUp
事件并尝试在表单中使用MouseHover:
private void frmMain_MouseHover(object sender, MouseEventArgs e) { if (isDown) { foreach (Letter l in game.GetLetters()) if (l.ClientRectangle.Contains(l.PointToClient(Control.MousePosition))) l.ForeColor = Color.Purple; } }
这个事件也没有触发,我不知道为什么它没有解雇,以及一些替代解决方案是什么.任何建议表示赞赏.