Bir TrackBar
denetimi kullanıyorum. Varsayılan olarak değerleri int32
'dur. Ondalık değerleri kullanmak isterim, böylece kullanım daha ayrıntılı bir seviyede seçilebilir. Float kabul etmek için TrackBar
kontrolünü nasıl alabilirim?TrackBar ile şamandıralar nasıl kullanılır
cevap
Bir çarpan kullanabilirsiniz. Örneğin, TrackBar kontrolünüzü 0 - 5 arası 0,01'lik artışlarla yapmak istediğinizi varsayalım. Minimum değerini 0 olarak ayarlayın, Maksimum değerini 500 olarak ayarlayın ve artırın 1.
Float değerinizi ayarladığınızda, 100 ile çarpın ve TrackBar değeri için kullanın.
TrackBar, ints ile çalıştığından ve Int32'nin tam veri aralığına sahip olduğundan, bu şekilde herhangi bir (gerçekçi) hassasiyet derecesi elde edebileceksiniz. Bu, bir kullanıcı arabiriminin gerektirdiğinden çok daha hassastır.
Harika çözüm. Harika çalışıyor. – rross
başka bir fikir TrackBar
den inherit olacaktır ve Reed Copsey int'leri kullanabilir ve hassas faktörü ile çarpmak için önerilen şekilde özel bir sınıfta float değerleri simüle. küçük şamandıra değerleri için oldukça düzgün
aşağıdaki çalışır:
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); } }
}
Gerçekten güzel bir çözüm! Kabul edilen cevap gibi, ama kendi sınıfında. Teşekkür ederim! – itmuckel
Tamsayı size 2 milyar olası değerleri verir. Bu kontrol için ne kadar daha fazla ihtiyacınız var? – Kibbee
Tam olarak değerler değil. Nasıl temsil edildikleri. Müşteri, ondalık formda temsil edilmesini ister. – rross