rro*_*oss 8 .net c# controls visual-studio
我正在使用一个TrackBar控件.默认情况下,其值为int32.我真的想使用十进制值,因此使用可以更精细地选择.如何让TrackBar控件接受浮动?
Ree*_*sey 18
您可以使用乘数.比如说,你想让你的TrackBar控件从0到5增加0.01.只需将Minimum设置为0,将Maximum设置为500,并将增量设置为1.
当您设置浮点值时,将其乘以100,并将其用于TrackBar值.
您应该能够以这种方式获得任何(实际)精度,因为TrackBar使用整数,并且具有Int32的完整数据范围.这比用户界面要求的精度要高得多.
另一个想法是继承自TrackBar和模拟浮点值在方式里德·科普塞建议使用整数乘法和用精密因子的自定义类。
以下对于小的浮点值非常有效:
class FloatTrackBar: TrackBar
{
private float precision = 0.01f;
public float Precision
{
get { return precision; }
set
{
precision = value;
// todo: update the 5 properties below
}
}
public new float LargeChange
{ get { return base.LargeChange * precision; } set { base.LargeChange = (int) (value / precision); } }
public new float Maximum
{ get { return base.Maximum * precision; } set { base.Maximum = (int) (value / precision); } }
public new float Minimum
{ get { return base.Minimum * precision; } set { base.Minimum = (int) (value / precision); } }
public new float SmallChange
{ get { return base.SmallChange * precision; } set { base.SmallChange = (int) (value / precision); } }
public new float Value
{ get { return base.Value * precision; } set { base.Value = (int) (value / precision); } }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18455 次 |
| 最近记录: |