【问题标题】:How can I change the tick frequency in trackbar to a decimal? [closed]如何将轨迹栏中的刻度频率更改为小数? [关闭]
【发布时间】:2014-09-28 19:05:03
【问题描述】:

我正在尝试将轨迹栏的滴答频率设置为 0.015625。

private void trackBar1_Scroll(object sender, EventArgs e) {           
    ScrollBar.TickFrequency = 0.015625;
}

我收到一条错误消息:

无法将类型“double”隐式转换为“int”。存在显式转换(您是否缺少演员表?)

还有:

无法将方法组“ToDouble”转换为非委托类型“int”。您是否打算调用该方法?

有人可以解释这意味着什么或我做错了什么吗?

编辑:我找到了问题的答案。

Demo.Property = (ScrollBar.Value * (Rate));

就我而言,我使用的是:

Demo.Inches = (ScrollBar.Value * 0.015625);

【问题讨论】:

  • 您没有包含产生第二个错误的代码。
  • 您是否检查过 TickFrequency 的文档以了解其数据类型?你看过 C# 中的implicit numeric conversions 吗?
  • 你确定你有适合TickFrequency的对象吗? TickFrequency double 类型在 Slider...
  • 抱歉,Henk,没有第二个错误。我认为距离我编辑代码之前还只是三个。 Habo,我看过那些东西,但我太新了,我不太了解。至少语法部分。 @Peter 你说的滑块是什么意思?
  • @PeterRitchie - 变量名是ScrollBar,但事件是trackBar1_Scroll。我猜类型是System.Windows.Form.TrackBar

标签: c# winforms trackbar


【解决方案1】:

它被设计为int,就像 Min、Max 和 Value 属性一样。

您必须在此处计算自己的缩放比例。例如,将 Max 设置为 64 的倍数。

【讨论】:

  • 所以我根本不能使用小数点?
  • 正确,你不能。
  • 问题是我需要设置滑块值,使其代表 0 到 2 英寸,128 步。为了实现这一点,我不需要使用小数吗?
  • 只需将 2 英寸等同于 tb.Maximum=128 并将频率保留为 1。
  • 对不起,我不明白如何明确设置。我一直在寻找示例,但可能是因为我没有经验,我无法找到实际输入的方法. 你能帮忙吗?谢谢你已经提供的帮助。我将 Max 设置为 128,将滴答频率设置为 1,但等于 2 英寸是我不明白的部分。
猜你喜欢
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 2016-05-24
  • 2021-10-15
相关资源
最近更新 更多