C# 通过按Form1的 按钮,改变Form2的panel背景颜色。卡了快两天了,试了ref
1个回答
展开全部
可以通过Invoke进行跨线程调用(其他类似的方法也行):
//Form1中的按钮修改Form2中的panel颜色
//首先在Form2代码中添加公共函数
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void changecolor() //添加的函数
{
panel2.BackColor = Color.Red;
}
}
//Form1中添加如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//委托, 为了使用Invoke调用Form2的方法
//因为.Net 禁止直接的跨线程调用.
public delegate void del_change();
public del_change change;
private void btn_1_Click(object sender, EventArgs e) //Form1中的按钮点击事件过程
{
Form2 f2;
f2 = new Form2();
f2.Show();
f2.Activate();
change = f2.changecolor; //将委托指向Form2的方法. 如果要传参啥的同理操作.
f2.Invoke(change);
}
}
追问
试了一下……还是没变化啊
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询