trackBar控件如何使滑块的位置为鼠标点击的位置

参考了网友的代码,但是定位不够精准。想了一下原因,必然是控件宽度和track的长度不相同造成的,因此要将两边的宽度差减去才可以。经过测试,这个宽度差是12左右。代码如下:

 private void tkBarTimeElapse_MouseDown(object sender, MouseEventArgs e)
        {
            // for precision of the position of the track bar  
            int borderW = 12;// key point 
            float barLen = tkBarTimeElapse.Width - borderW;
            float curPos = e.X - tkBarTimeElapse.Location.X - borderW / 2;
            if (curPos > barLen) curPos = barLen;
            if (curPos <0) curPos = 0;
            tkBarTimeElapse.Value = (int)( curPos*      	Convert.ToDouble(tkBarTimeElapse.Maximum) / barLen);

            。。。。

        }

如果有可以测量这个宽度差的完美方法,请不吝赐教。
MaraSun 于 2020-10-29
北京海淀泛五地区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值