私はC#でピアノを開発しています。C#Foreachステートメント
私は私のプログラムで次のコードを持っている:
private void panel1_MouseDown(object sender, MouseEventArgs e)
{
mn1 = new MusicNote();
foreach (MusKey mk in this.panel2.Controls)
{
if (sender == mk)
{
//code
mk.MouseUp += new MouseEventHandler(this.panel1_MouseUp);
}
}
}
何このイベントは行うことは、音楽のメモを作成し、ユーザーがマウスボタンを離したときにMouseUpイベントハンドラを呼び出すです。
私の問題は、同じ音楽キー(MusKey)をもう一度押すと、mk.MouseUpイベントがその単一のキー・プレスに対して2回実行されるということです。同様に、同じキーが5回(必ずしも連続しているとは限りません)押された場合、mk.MouseUpイベントは、その単一キーの押下に対して5回実行されます。
私がしたいことは、すべてのMusKey mkではなく、すべてのMouseDownイベントに対してforeachループを実行することです。 MusKey mkが押されたプログラムを "覚えている"ようには思いません。
どうすればいいですか?
は非常に非常に非常にありがとうございました:) :): )問題はあなたの助けを借りて解決されました:) – Clayton
@Clayton - 問題はありません、あなたのピアノプログラム(ピアニスト、自分自身で20年以上)で幸運です。 –
ありがとうありがとうございます:)お祝いの季節には最高です:) – Clayton