寫程式必須十分了解目前區塊所能控制的位置。
本文講述如何從子視窗控制父視窗之控件。
假設From1為父(主要)視窗,Form2為子視窗。
假設Form1中有個button1,現在彈出的子視窗要如何控制button1的顏色?
設計:
在Form2中按下button_form2_1這個按鈕會讓Form1中的button1變成綠色,
在Form2中按下button_form2_2按鈕會讓Form1中的button1變成紅色。
Step1: 修改Form1被控制項的「Modifiers」屬性
將button1的「Modifiers」屬性變更為“public”,以供Form2存取。
Step2: Form1程式碼設計如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
namespace LaserIP1 { public partial class Form1 : Form { private Form2 Form2 = null; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // 將Form1傳入Form2中 Form2 = new Form2(this); Form2().ShowDialog(); } } } |
Step3: Form2程式碼設計如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
namespace Form1 { public partial class Form2 : Form { private Form1 frm1; public Form2(Form1 form) { InitializeComponent(); frm1 = form; } private void button_form2_1_Click(object sender, EventArgs e) { frm1.button1.BackColor = Color.Green; this.Close(); } private void button_form2_2_Click(object sender, EventArgs e) { frm1.button1.BackColor = Color.Red; this.Close(); } } } |
留言