改变另一种形式的不透明度

时间:2013-03-29 10:56:33

标签: c# winforms opacity

我正在制作一个程序,我在程序中有另一个表单,其中包含该程序的选项。选项是Checkboxes,应该启用不透明度。我可以用其他形式更改主窗体的不透明度吗?

private void useOpacity_CheckedChanged(object sender, EventArgs e)
{
    if (useOpacity.Checked)
    {
         window().Opacity = .75;
    }
}
像这样......

3 个答案:

答案 0 :(得分:1)

如果这是父母的子形式,您可以这样做:

this.Parent.Invoke((MethodInvoker)delegate {
    Form temp = (Form)this.Parent;
    temp.Opacity = 0.75});

答案 1 :(得分:1)

使用代表

public class OptionWindow
{
    public delegate void oppacityDelegate(double value);
    public static event oppacityDelegate oppacity;

调用它

private void useOpacity_CheckedChanged(object sender, EventArgs e)
{
     if (useOpacity.Checked)
     {
       oppacity(.75);
     }
}

并在你的supperior课程中抓住它

OptionWindow.oppacity += ChangeOppacity;

答案 2 :(得分:0)

MainWindow传递给选项窗口的构造函数。然后在您的选项窗口中:

public class OptionWindow : Form
{
    Form _mainWindow;                       //YOUR PROGRAM IS OF TYPE Form

    public OptionWindow(Form mainWindow)
    {
        this._mainWindow = mainWindow;
    }

    private void useOpacity_CheckedChanged(object sender, EventArgs e)
    {
         if (useOpacity.Checked)
         {
           _mainWindow.Opacity = .75;
         }
     }
}

以下是您使用程序中的OptionWindow

OptionWindow window = new OptionWindow(this);
window.Show();