Cette on amène une valeur par rapport à la position où le clic a été fait sur la barre de progression. La plage de valeurs ici est calculée de 0 à 100%. C'est aussi en relation avec la largeur de la barre de progression, donc la plage restera fixée au pourcentage de la logique.
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)100;
// 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);
}
Je sais que cette question a été posée il y a longtemps, mais il était hors de la bonne solution. Ici c'est maintenant.
Vous devriez probablement utiliser un curseur au lieu d'une barre de progression. – Aren