TrackBar控件鼠标点击

charbes0801tom 2012-06-21 09:51:18
为什么我点击某个刻度,不是跳到最后就是跳到第一个值,有没有实现那个功能的,鼠标点击哪刻度就在哪。看了很多别的帖子回复,但是功能没有实现的。
...全文
318 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
charbes0801tom 2012-06-26
  • 打赏
  • 举报
回复
好吧,我自己计算一下吧
美丽的鸡翅膀 2012-06-21
  • 打赏
  • 举报
回复
对的,点击和拖动不同,点击仅仅移动一个刻度,要达到拖动的效果得自己写代码
__天涯寻梦 2012-06-21
  • 打赏
  • 举报
回复
只有一个属性 LargeChange 能调整下鼠标点击时移动的刻度数,调小一点能不至于一下到头,不过点哪刻哪没有直接的办法,要不在点击事件里计算下坐标吧。
assky124 2012-06-21
  • 打赏
  • 举报
回复
把控件的LargeChange和SmallChange改成一样就行了
__天涯寻梦 2012-06-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
e.X不是鼠标位置的横坐标吗?也是一个值啊,应该可以比较吧,我的鼠标事件绑在控件上的,E.X应该是到控件开始位置的值吧
[/Quote]
你说的没错,但是 Minimum Maximum 这两个不是坐标值,不能比较
charbes0801tom 2012-06-21
  • 打赏
  • 举报
回复
e.X不是鼠标位置的横坐标吗?也是一个值啊,应该可以比较吧,我的鼠标事件绑在控件上的,E.X应该是到控件开始位置的值吧
__天涯寻梦 2012-06-21
  • 打赏
  • 举报
回复
e.X Y 是鼠标位置,和 Minimum Maximum 就不是一个概念,用截图工具量一下 TrackBar 第一个刻度到左边线的距离,最后一个刻度到右边线的距离,用这个来和 e.X 比较
bdmh 2012-06-21
  • 打赏
  • 举报
回复
e.X > this.trackBar1.Maximum,这能比较吗,X是坐标,你还没有转化成Value,这需要计算的
bdmh 2012-06-21
  • 打赏
  • 举报
回复
e.X > this.trackBar1.Maximum,这能比较吗,X是坐标,你还没有转化成Value,这需要计算的
charbes0801tom 2012-06-21
  • 打赏
  • 举报
回复
private Point lastPoint = Point.Empty; 
private void trackBar1_MouseDown(object sender, MouseEventArgs e)
{
lastPoint.X = e.X;
lastPoint.Y = e.Y;
if (e.X > this.trackBar1.Minimum && e.X < this.trackBar1.Maximum)
this.trackBar1.Value = e.X;
else if (e.X > this.trackBar1.Maximum)
this.trackBar1.Value = this.trackBar1.Maximum;
else
this.trackBar1.Value = this.trackBar1.Minimum;
}
这段代码为什么实现不了呢?

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧