我正在制作winforms的音乐播放器。我有一个进度条,当我点击进度条上的位置时,我想获得该位置的int(从1到100,即当我想要到达我歌曲中的某个点时)。我怎么能这样做?
此致 Alexandru Badescu
答案 0 :(得分:2)
答案 1 :(得分:2)
试试这个:
'Using The Click or MouseDown or any Mouse Event
Dim Value As Integer= Me.PointToClient(MousePosition).X-Progressbar.Bounds.X
Progressbar.value= Value
答案 2 :(得分:1)
你可以使用必须放在进度条上的控件 - 就像一个小子弹。 现在,如果你使用代码
progressbar1.value=control.location.x/y
将控件的名称放在控件的位置x / y决定坐标。
请注意您必须在进度条上移动控件以简化使用图片框并使用keydown事件并排移动
答案 3 :(得分:1)
这个会显示与进度条上的点击完成位置相关的值。此处的值范围是从0到100%计算的。它还与进度条的宽度有关,因此范围将保持固定为百分比逻辑。
private void progressBar1_Click(object sender, EventArgs e)
{
// Get mouse position(x) minus the width of the progressbar (so beginning of the progressbar is mousepos = 0 //
float absoluteMouse = (PointToClient(MousePosition).X - progressBar1.Bounds.X);
// Calculate the factor for converting the position (progbarWidth/100) //
float calcFactor = progressBar1.Width / (float)progressBar1.Maximum;
// In the end convert the absolute mouse value to a relative mouse value by dividing the absolute mouse by the calcfactor //
float relativeMouse = absoluteMouse / calcFactor;
// Set the calculated relative value to the progressbar //
progressBar1.Value = Convert.ToInt32(relativeMouse);
}
我知道很久以前就问过这个问题了,但这不是正确的解决方案。现在就是这样。
答案 4 :(得分:0)
您可以使用图片框来模拟进度条...有一种方法可以根据当前进度部分填充它,并连接MouseDown事件(这将为您提供鼠标位置,然后您可以相应地缩放)。