我有两个连接到控件的事件。鼠标单击事件播放音频文件。由鼠标按下,鼠标移动和鼠标向上组成的拖动事件垂直拖动控件。通过垂直拖动控件,控件将被分配不同的歌曲。 我遇到的问题是,当我拖动控件时,音乐会播放。我不想要这个,因为这是一个拖动操作。 只有在单击控件并移动音符时才能播放音乐。 我认为设定边界,例如当控制只移动5个像素播放声音,否则拖动控制应解决问题,但我试图创建它们失败。
请您使用代码段来指导如何解决此问题。 谢谢。 拖动
int Locked_yLoc; int index;
private void StartDrag(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
sp1.SoundLocation = this.pitch + ".wav";
sp1.Play();
tm1.Interval = 100 * this.noteDuration;
tm1.Start();
isDragging = true;
pitch = e.Y;
this.Location = new Point(this.Location.X, pitch);
}
}
private void StopDrag(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
isDragging = false;
this.Location = new Point(this.Location.X, Locked_yLoc);
pitch = index;
//lbl8.Text = pitch.ToString();
}
}
private void OnDrag(object sender, MouseEventArgs e)
{
if (isDragging)
{
this.Top = this.Top + (e.Y - pitch);
Locked_yLoc = (int)Math.Round((this.Top + (e.Y - pitch)) / 10.0) * 10;
for (int i = 0; i < yLocation.Length; i++)
{
if (Locked_yLoc == yLocation[i])
{
index = CorrPitch[i];
}
}
}
}
点击
private void MusicNote_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
sp1.SoundLocation = this.pitch + ".wav";
sp1.Play();
tm1.Interval = 100 * this.noteDuration;
tm1.Start();
}
}