0

所以我希望我的 form2Trackbar改变我的 form1 的不透明度,但它似乎没有完成工作?

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        Form1 frm1 = new Form1();

        frm1.Opacity = trackBar1.Value * 000.1d;

    }
}
4

2 回答 2

2

您不会更改 Form1 的不透明度而是更改Form1 的不透明度。您需要确保更改要更改的表单实例的不透明度:

public partial class Form2 : Form
{
    private Form1 form;

    public Form2(Form1 form)
    {
        InitializeComponent();
        this.form = form;
    }

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        form.Opacity = trackBar1.Value * 000.1d;
    }
  }
}

然后在创建 Form2 时,传递要更改的 Form1 的实例。例如,来自 Form1 中的按钮:

public void opacityChangeButton_Click(object sender , EventArgs e)
{
    Form2 opacityChangeForm = new Form2(this);
    opacityChangeForm.ShowDialog();
}
于 2013-05-25T10:21:26.693 回答
0

而不是每次都使用现有表单的 id 创建一个新表单:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void trackBar1_Scroll(object sender, EventArgs e)
    {
        // Do not create a new form: Form1 frm1 = new Form1();

        // Use name of original form
        whateverVariableyourCreateedForYourForm.Opacity = trackBar1.Value * 000.1d;

    }
}
于 2013-05-25T10:21:14.487 回答