Jag har drabbats av ovanligt mycket stillestånd i hjärnkontoret. Här kommer lite exempelkod. Eftersom du har så stora min och maxvärden så föreslår jag att du kollar om man ligger nära 50% och inte exakt 50%. Det kan vara svårt att träffa exakt rätt på mittvärdet annars. Så i min kod ligger det en kontroll om värdet ligger mellan 49 och 51%. Du kan ändra på noggranheten genom att ändra på siffran 1 i if-satsen. Du måste även ändra på namnet på textBox1 och trackBar1 så att de motsvarar dina kontrollers namn. Hej Hultan. Micke:s fix fungerar ju, men jag skulle nog hellre skriva om beräkningarna korrekt i stället :Räkna procent
Jag håller på med DirectMusic och där har jag lagt in bl a två trackbar för volym och balans. Till detta så har jag kopplat varsin textBox, där jag ville visa värdena.
balans maxvärde = 10000
" minvärde = -10000
Vad jag ville åstadkomma är attstår den i mitten så skall texten CENTER skrivas in (det går nog med en vanlig replace tror jag), annars så ville jag ha det i procent alltså v 25% om man har dragit över den med 1/4 osv.
Hur skall jag kunna fixa detta?Sv: Räkna procent
<code>
private void Form1_Load(object sender, System.EventArgs e)
{
trackBar1.Maximum=10000;
trackBar1.Minimum=-10000;
}
Private void trackBar1_Scroll(object sender, System.EventArgs e)
{
string s;
const float MAXVALUE=10000; // eller trackBar1.Maximum
const float MINVALUE=-10000; // eller trackBar1.Minimum
// i change-eventet på trackbaren :
float percent=(((float)trackBar1.Value-MINVALUE)/(MAXVALUE-MINVALUE))*100;
// Kolla om värdet ligger mellan 49 och 51
if (Math.Abs(percent-50)<1)
s="Center";
else
s=((int)percent).ToString() + " %";
textBox1.Text=s;
}
</code>Sv: Räkna procent
Tack för förslag, men det var inte riktigt vad jag hadde tänkt.
Så här tänkte jag.
Om trackbaren står i mitten så skall det skrivas "center" (och det gör den).
Om den är fullt utslag till vänster så ville jag ha "v 100%".
Om den har fullt utslag till höger så ville jag ha "h 100%".
Som det nu är så visar den 0 % vid fullt utslag till vänster, 100% vid fullt utslag till höger.
Går det att fixa?Sv: Räkna procent
<code>
Private void trackBar1_Scroll(object sender, System.EventArgs e)
{
string s;
const float MAXVALUE=10000; // eller trackBar1.Maximum
float percent=(((float)trackBar1.Value)/MAXVALUE)*100;
// Kolla om värdet ligger nära noll
if (Math.Abs(percent)<1)
s="Center";
else if (percent<0)
s="v " + ((int)percent).ToString() + " %";
else
s="h " + ((int)percent).ToString() + " %";
textBox1.Text=s;
}
</code>