简体   繁体   中英

Changing opacity in form with trackbar in C# don't works, why?

I have (for fun) make a form in C# , with a trackbar . I want to change the Opacity of the form with it, so I wrote this:

private void trackBar1_Scroll(object sender, EventArgs e)
{
    progressBar1.Value = trackBar1.Value;
    System.Windows.Forms.Form.ActiveForm.Opacity = trackBar1.Value;
    label2.Text = trackBar1.Value.ToString();
}

When I start the program, the opacity will be 100% if the trackbar is in value 1 to 100, and if i drag the trackbar to 0, the form becomes fully transparant.

can you only get 100% Opacity or 0% Opacity when a form is started, or is what i want also possible?

The value of System.Windows.Forms.Form.Opacity is between 0.0 and 1.0 , to get the percentage of the opacity you can multiply it with 100 , so 1 means fully opaque and 0 means fully transparent .

For the trackbar, you should convert its Value to the corresponding value between 0.0 and 1.0 , so you should do something like this:

yourForm.Opacity = (double)trackBar1.Value/trackBar1.Maximum;

将数字除以 100。它应该是介于 0 和 1 之间的双精度数

((double)trackBar1.Value) / 100

Use this:

System.Windows.Forms.Form.ActiveForm.Opacity = ((double)(trackBar1.Value) /100.0)

You can have different degrees of opacity. For example 0.5 will give you 50% opacity.

private void trackBar1_Scroll(object sender, EventArgs e) { label1.Text =trackBar1.Value.ToString()+ "%";

        Opacity=trackBar1.Value / 100.00;
        
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM