winform有個(gè)主窗口,點(diǎn)擊上面一個(gè)按鈕彈出一個(gè)副窗口,通過(guò)點(diǎn)擊副窗口上的一個(gè)按鈕 來(lái)改變主窗口的背景顏色,代碼如下:
主窗口:
namespace WindowsFormsCouleur
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
?...
//主窗口上有個(gè)按鈕,下面是點(diǎn)擊彈出副窗口
private void boutonRadioToolStripMenuItem_Click(object sender, EventArgs e)
{
Bouton_radio a1 = new Bouton_radio(this);
a1.ShowDialog();
}
?
?
以上是主窗口,點(diǎn)擊按鈕,創(chuàng)建一個(gè)新的副窗口類(lèi),名為: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,還有副窗口的代碼是問(wèn)題所在,是我不懂的地方)
請(qǐng)教各位大蝦,為什么可以通過(guò)這個(gè)程序控制主窗口的背景顏色,那個(gè)this是什么作用?我知道this定義,但不知道這兒的用法;還有副窗口的fenetre1和 fenetre什么關(guān)系,怎么做到副窗口控制主窗口的顏色的,這里面的邏輯關(guān)系式什么?講解越詳細(xì)越好,謝謝各位先,這個(gè)問(wèn)題困擾我好久了
5 回答

holdtom
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
簡(jiǎn)單來(lái)講吧。你在子窗體定義了一個(gè)臨時(shí)父窗體的對(duì)象。get{} set{} 子窗體構(gòu)造函數(shù)中設(shè)置傳遞參數(shù)與父窗體對(duì)象做綁定操作
并設(shè)置它的背景色。

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
1先修改Program.cs文件中的代碼。
2在Form1類(lèi)中加入ChangeColor()函數(shù)能改顏色。
3然后Program.Form1Instance.ChangeColor();就能改顏色了。
- 5 回答
- 0 關(guān)注
- 464 瀏覽
添加回答
舉報(bào)
0/150
提交
取消