关于 .net c# winform 的问题,是之前我们做的一个小程序测试,很基础的问题,但我目前搞不清楚:

winform有个主窗口,点击上面一个按钮弹出一个副窗口,通过点击副窗口上的一个按钮 来改变主窗口的背景颜色,代码如下: 主窗口: namespace WindowsFormsCouleur { public partial class Form1 : Form { public Form1() { InitializeComponent(); }  ... //主窗口上有个按钮,下面是点击弹出副窗口 private void boutonRadioToolStripMenuItem_Click(object sender, EventArgs e) { Bouton_radio a1 = new Bouton_radio(this); a1.ShowDialog(); }     以上是主窗口,点击按钮,创建一个新的副窗口类,名为:Bouton_radio ,下面是副窗口代码: namespace WindowsFormsCouleur{ public partial class Bouton_radio : Form { Form1 fenetre1; public Bouton_radio(Form1 fenetre) { InitializeComponent(); fenetre1 = fenetre; } private void radioButton1_CheckedChanged(object sender, EventArgs e) { fenetre1.BackColor = Color.Red; }   ... 就是上面这些代码(主要是主窗口的this,还有副窗口的代码是问题所在,是我不懂的地方) 请教各位大虾,为什么可以通过这个程序控制主窗口的背景颜色,那个this是什么作用?我知道this定义,但不知道这儿的用法;还有副窗口的fenetre1和 fenetre什么关系,怎么做到副窗口控制主窗口的颜色的,这里面的逻辑关系式什么?讲解越详细越好,谢谢各位先,这个问题困扰我好久了
森林海
浏览 451回答 5
5回答

杨魅力

变量作用域, 你要先了解这个概念,才会明白这样赋值的意义

holdtom

简单来讲吧。你在子窗体定义了一个临时父窗体的对象。get{} set{} 子窗体构造函数中设置传递参数与父窗体对象做绑定操作 并设置它的背景色。

慕妹3146593

1先修改Program.cs文件中的代码。 2在Form1类中加入ChangeColor()函数能改颜色。 3然后Program.Form1Instance.ChangeColor();就能改颜色了。
打开App,查看更多内容
随时随地看视频慕课网APP