C子窗体得到并操作父窗体控件值
有一个父窗体,里面有一个picturebox显示一张图片,还有一个按钮,点击按钮弹出子窗体,现在要求在子窗体中点击按钮,更改父窗体的图片,效果如图:
1、新建一个T项目,把相关控件拖入窗体中,再添加一个Form2做为子窗体,Form2(子窗体)窗体代码如下:namespace T { //子窗体 public partial class Form2 : Form { //实例化父窗体 Form1 f1; //创建Form2时需要提供父窗体参数 public Form2(Form1 F1) { //得到父窗体实例 f1 = F1; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { } } } 2、父窗体点击按钮弹出子窗体,代码:namespace T { //父窗体 public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { pictureBox1.ImageLocation = "c#.jpg"; } private void button1_Click(object sender, EventArgs e) { //this参数将自己做为参数传到Form2中 Form2 f2 = new Form2(this); f2.ShowDialog(); } } }
3、此时如果我们想在子窗体中控制父窗体的picturebox1的话,发现找不到这个控件
我们需要在父窗体中将picturebox1控件可见性级别设为’public’
4、给子窗体的按钮添加点击代码:private void button1_Click(object sender, EventArgs e) { //子窗体的按钮点击 f1.pictureBox1.ImageLocation = "pdf.jpg"; }运行调试即可