Проблема, с которой вы сталкиваетесь, заключается в том, что вы обновляете трекбар из тикового события, а затем это приводит к повторному обновлению позиции игрока до позиции, в которой он находится. Таким образом, каждый тик заставляет трекбар обновляться дважды, что вызывает заикание, которое вы испытываете.
Чтобы исправить это, вам не нужно обновлять позицию игрока, если срабатывает тик.
Переменная bool уровня класса сделает свое дело:
private bool ticking = false;
В вашем TmrPlay_Tick
вы должны установить ticking
в true:
if (player.playState == WMPLib.WMPPlayState.wmppsPlaying)
{
ticking = true;
MyTrackBar.Value = (int)player.Ctlcontrols.currentPosition;
}
Тогда в вашем событии MyTrackBar_ValueChanged не обновляйте трекбар снова, если отметка истинна:
if (ticking)
{
ticking = false;
}
else
{
player.Ctlcontrols.currentposition = MyTrackBar.Value;
}