щелчок индикатора выполнения => изменить текущую позицию воспроизведения трека - PullRequest
2 голосов
/ 27 октября 2010

я делаю музыкальный проигрыватель в winforms.У меня есть индикатор выполнения, и когда я нажимаю на позицию вдоль индикатора выполнения, я хочу получить значение int для этой позиции (от 1 до 100, то есть, когда я хочу достичь определенной точки в моей песне).Как я могу это сделать?

С уважением, Александру Бадеску

Ответы [ 5 ]

2 голосов
/ 01 апреля 2012

Попробуйте это:

'Using The Click or MouseDown or any Mouse Event

Dim Value As Integer= Me.PointToClient(MousePosition).X-Progressbar.Bounds.X

Progressbar.value= Value
2 голосов
/ 27 октября 2010

Используйте TrackBar элемент управления, и этот может быть предварительным, надеюсь, он вам поможет.

Удачи.

1 голос
/ 18 сентября 2014

Этот выводит значение по отношению к позиции, в которой был выполнен щелчок на индикаторе выполнения. Диапазон значений здесь рассчитывается от 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);
        }

Я знаю, что этот вопрос задавали очень давно, но это было неправильное решение. Вот оно, сейчас.

1 голос
/ 02 мая 2011

вы можете использовать элемент управления, который должен быть помещен на индикатор выполнения - как маленькая пуля.Теперь, если вы используете код

progressbar1.value=control.location.x/y

, поместите имя элемента управления в положение элемента управления. x / y определяет координаты.

запишите, что вам нужно переместить элемент управления наИндикатор выполнения для упрощений использует графическое окно и событие keydown, чтобы переместить его рядом

0 голосов
/ 27 октября 2010

Ну, вы можете использовать графический блок для имитации индикатора выполнения ... есть метод, чтобы частично заполнить его на основе текущего прогресса, и подключите событие MouseDown (это предоставит вам положение мыши, которое вы затем сможете соответственно масштабировать).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...