ToB企服应用市场:ToB评测及商务社交产业平台
标题:
winfrom的progressBar 鼠标移上去显示 进度条的时间
[打印本页]
作者:
吴旭华
时间:
8 小时前
标题:
winfrom的progressBar 鼠标移上去显示 进度条的时间
需求描述:
播放IPC摄像头(海康、大华)的录像回放,视频窗口下方有个进度条,能显示当前录像播放的进度,点击进度条能将视频跳转到指定的时间点继续播放... 现在需要再进度条上显示
视频的时间
,用来提示在哪个进度点去点击鼠标将视频跳转到
指定的时间
点继续播放
给进度条控件progressBar添加
MouseMove变乱
,变乱内代码如下:
//鼠标在进度条上移动
private void PlaybackprogressBar_MouseMove(object sender, MouseEventArgs e)
{
var progressBar = this.PlaybackprogressBar;//滑块控件
// 计算鼠标位置对应的进度值
int s = CalculateMouseValue(progressBar, e.X);
int h = s / (60 * 60);//获得小时部分
int y = s % (60 * 60);//取出余数
int m = y / 60;//获得分钟部分
string hh = h.ToString().PadLeft(2, '0');
string mm = m.ToString().PadLeft(2, '0');
string time = hh + ":" + mm;//hh:mm
// 显示鼠标所在位置的进度值
this.toolTip1.SetToolTip(progressBar, $"{this.dateTimeStart.Value.ToString("yyyy-MM-dd")} {time}");
}
//计算进度条的值
private int CalculateMouseValue(MaterialSlider progressBar, int mouseX)
{
int minValue = 0;//最小值,0秒
int maxValue = 86400;//最大值,一天有:60秒*60分钟*24小时=86400秒
// 获取 ProgressBar 的宽度
int barWidth = progressBar.Width;
// 计算鼠标位置对应的进度值
double ratio = (double)mouseX / barWidth;
int value = (int)(minValue + ratio * (maxValue - minValue));
// 确保计算的值在 ProgressBar 的有效范围内
value = Math.Max(minValue, Math.Min(maxValue, value));
return value;
}
复制代码
效果如图:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4