单击另一个表单上的按钮后立即更改表单的背景图像

时间:2015-12-29 10:46:02

标签: c# forms visual-studio

我有两种形式(AB)。在B形式中,有许多按钮具有不同的背景图像。在点击任何一个按钮时,我想将表单A的背景图像更改为按钮的背景图像,该按钮被立即点击,因为它始终在表单后面打开。

formA mai = new formA();

private void button1_Click(object sender, EventArgs e)
    {
        mai.BackgroundImage = button1.BackgroundImage;
    }

这是我正在使用的代码,虽然它改变了它不会立即改变的背景图像,但如果我打开并关闭表格,背景图像将会改变。 我不需要,我需要它立即改变。

3 个答案:

答案 0 :(得分:0)

添加this.Refresh()

formA mai = new formA();

private void button1_Click(object sender, EventArgs e)
{
    mai.BackgroundImage = button1.BackgroundImage;
    mai.BringToFront();
    mai.Refresh();
}

答案 1 :(得分:0)

设置新图片后调用mai.Invalidate()

答案 2 :(得分:0)

formB中添加字段,以引用要更改其formA的{​​{1}}个实例;并在致电BackgroundImage

时初始化它

formB代码隐藏:

formB

public partial class formB : Form { public formA owner; public formB() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (owner != null) owner.BackgroundImage = button1.BackgroundImage; } private void button2_Click(object sender, EventArgs e) { if (owner != null) owner.BackgroundImage = button2.BackgroundImage; } private void button3_Click(object sender, EventArgs e) { if (owner != null) owner.BackgroundImage = button3.BackgroundImage; } } 代码隐藏:

formA