Если вы используете WinForms, Form.Opacity
имеет тип double
, поэтому вы должны использовать:
double trans = trackBar1.Value / 5000.0;
this.Opacity = trans;
Если вам не нужно значение в другом месте, проще написать:
this.Opacity = trackBar1.Value / 5000.0;
Причина, по которой элемент управления не работает, когда вы изменили код на простой, был в том, что у вас было:
double trans = trackbar1.Value / 5000;
, который интерпретировал 5000
как целое число, и поскольку trackbar1.Value
также является целым числом, ваше значение trans
всегда было равно нулю. Явно делая числовое значение с плавающей запятой добавлением .0
, компилятор теперь может интерпретировать его как двойное число и выполнить правильный расчет.