实例说明
窗体中每个可视控件都有所有者和父对象两个重要属性,所有者是控件建立时指定的所属对象,该对象可以是不可视控件,而父对象必须是可视控件。因此可以通过窗体中可视控件的Parent属性来判断控件是否在这个窗体中,还可以用Form.Controls.Add( )方法为窗体添加控件。本例以一个可以在窗口间移动的按钮来演示父对象改变后的运行效果。运行本例,在窗口中单击按钮,按钮就会移动到另外一个窗口中。实例效果如图1.42和图1.43所示。
图1.42 在窗口间移动按钮 图1.43 在窗口间移动按钮
技术要点
可视控件包含一个Parent属性,该属性表示控件的父对象。一般将此属性设置为一个窗口。通过该属性可以控制所属窗体。
实现过程
(1)创建一个项目,将其命名为Ex01_42,默认窗体为Form1。
(2)添加一个窗体,默认窗体的Name属性为Form2。
(3)在Form1窗口中添加一个Button控件。并为Form1和Form2设置背景图片。
(4)主要程序代码。
单击按钮在两个窗体之间移动,具体代码如下:
private void button1_Click(object sender, EventArgs e)
{
if (button1.Parent == this)
{
f.Controls.Add(this.button1);
this.button1.Text = "返回原地";
}
else
{
this.Controls.Add(button1);
this.button1.Text = "开始移动";
}
}
Form1窗体加载时同时显示Form2窗体,具体代码如下:
private void Form1_Load(object sender, EventArgs e)
{
f = new Form2( );
f.Show( );
}
举一反三
根据本实例,读者可以开发以下程序。
试做从一个窗体将控件拖到另一个窗体。
试做用一个窗体控制另一个窗体。