private void picKeyboard_MouseDown(object sender, MouseEventArgs e) { mMouseDownPos = mCtrl.PointToClient(Cursor.Position); var knobY = mMouseDownPos.Y / ChannelHeight; var knobX = -1; for (int i = 0; i < KnobPos.Length; i++) { var x = mMouseDownPos.X - KnobPos[i].X - 1.5; var y = mMouseDownPos.Y - knobY * ChannelHeight - KnobPos[i].Y; var r = Math.Sqrt(x * x + y * y); if (r <= KnobRadius + 5) { knobX = i; } } mIsDrag = 0 <= knobX; mChannelNo = knobY; if (MuteButton.X <= mMouseDownPos.X && mMouseDownPos.X < MuteButton.X + MuteButton.Width) { if (e.Button == MouseButtons.Right) { if (mPlayer.Channel(knobY).Enable) { for (int i = 0; i < 16; ++i) { if (knobY == i) { mSender.MuteChannel(i, true); } else { mSender.MuteChannel(i, false); } } } else { for (int i = 0; i < 16; ++i) { if (knobY == i) { mSender.MuteChannel(i, false); } else { mSender.MuteChannel(i, true); } } } } else { mSender.MuteChannel(knobY, mPlayer.Channel(knobY).Enable); } } mKnobNo = knobX; }