Presupunând că utilizați WinForms, Form.Opacity
este de tip dublu
, deci ar trebui să utilizați:
double trans = trackBar1.Value / 5000.0;
this.Opacity = trans;
Dacă nu aveți nevoie de valoarea în altă parte, este mai simplu să scrieți:
this.Opacity = trackBar1.Value / 5000.0;
Motivul pentru care controlul nu funcționează atunci când ți-ai schimbat codul pentru a fi simplu dublu a fost pentru că ai avut:
double trans = trackbar1.Value / 5000;
care a interpretat 5000
ca un număr întreg, deci valoarea trans
a fost întotdeauna zero. Determinând în mod explicit valoarea numerică a unei valori în virgulă mobilă adăugând .0
, compilatorul îl poate interpreta acum ca dublu și poate efectua calculul corect.