我有一个包含2个表单的项目,第一个表单是空的。第二种形式有5个按钮。
当我按下按钮时,它会打开一个颜色对话框。我正在选择一种颜色,按钮的背景颜色正在改变。例如,如果button1
的背景颜色ID为Green
,则form1
的背景颜色应为绿色。不是即时的,而是当我按保存按钮时。我需要将按钮的背景颜色变为变量。我怎么能这样做?
private void btnKAMU_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
btnKAMU.BackColor = colorDialog1.Color;
}
答案 0 :(得分:2)
您可以使用自定义属性或使用Form1
构造函数,将Form2
的引用传递给Form2
设置Form2
Owner
。 / p>
当您在Form1
中创建Form2
的实例时
使用then Owner属性:
(Form2
Owner
在您以这种方式实例化表单时设置:
form2.Show(this);
。 this
引用为Form2
Owner - Form1
此处。)
Form2 form2 = new Form2();
form2.Show(this);
//form2.ShowDialog(this);
在Form2
中,设置Owner
BackColor
属性:
private void btnSAVE_Click(object sender, EventArgs e)
{
this.Owner.BackColor = btnKAMU.BackColor;
}
<小时/> 使用自定义属性:
Form2 form2 = new Form2();
form2.Form1Reference = this;
form2.Show();
//form2.ShowDialog();
在Form2
中,使用属性值:
public Form Form1Reference { get; set; }
private void btnSAVE_Click(object sender, EventArgs e)
{
this.Form1Reference.BackColor = btnKAMU.BackColor;
}
<小时/> 在
Form1
构造函数中设置 Form2
的引用:
Form2 form2 = new Form2(this);
form2.Show();
//form2.ShowDialog();
使用以前的属性值:
private Form Form1Reference { get; set; }
public Form2(Form Form1Instance)
{
this.Form1Reference = Form1Instance;
InitializeComponent();
}
private void btnSAVE_Click(object sender, EventArgs e)
{
this.Form1Reference.BackColor = btnKAMU.BackColor;
}
或将Form1
引用分配给私有字段:
private Form Form1Reference;
public Form2(Form Form1Instance)
{
this.Form1Reference = Form1Instance;
InitializeComponent();
}
private void btnSAVE_Click(object sender, EventArgs e)
{
this.Form1Reference.BackColor = btnKAMU.BackColor;
}
根据您的具体情况,可能需要将所选颜色分配给私人字段并使用其值更改Form1.BackColor
private Color Form1BackColor;
private void btnKAMU_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
btnKAMU.BackColor = colorDialog1.Color;
this.Form1BackColor = btnKAMU.BackColor;
}
如果需要,请使用此值更改以前的代码。