涉及子窗体的创建过程,子窗体的调用操作,子窗体与主窗体的显示位置设置,子窗体随主窗体移动
//定义子窗体变量,供主窗体使用
private static WaveForm WaveForm;
//第一次创建WaveForm实体
if (WaveForm == null)
{
//创建新窗体
WaveForm = new WaveForm();
}
else
{
//多次创建通过判断IsDisposed确定窗口是否已经关闭,避免同窗口多开
if (WaveForm.IsDisposed == true)//判断该控件有无释放,若释放则重新创建窗体
{
//如果窗体已经关闭,需要重新创新
WaveForm = new WaveForm();
}
}
//新建窗体
//WaveForm = new WaveForm();//发现不用if语句判断直接创建窗体也能实现一样的功能
//窗体展示
WaveForm.Show();
//设置波形窗体紧靠主窗体
this.Left = 0;//主窗体左边的坐标为0
WaveForm.Location = this.Location;//主窗体坐标赋给子窗体
WaveForm.Left = this.Right;//主窗体的右显示坐标赋给子窗体左显示坐标
//主窗体位置改变事件
private void Form1_LocationChanged(object sender, EventArgs e)
{
//如果子窗体打开
if (WaveForm != null)
{
WaveForm.Location = this.Location;//主窗体坐标赋给子窗体
WaveForm.Left = this.Right;//主窗体的右显示坐标赋给子窗体左显示坐标
}
}
//定义子窗体变量,供主窗体使用
private static WaveForm WaveForm;
//波形显示按钮事件
private void button30_Click(object sender, EventArgs e)
{
//第一次创建WaveForm实体
if (WaveForm == null)
{
//创建新窗体
WaveForm = new WaveForm();
}
else
{
//多次创建通过判断IsDisposed确定窗口是否已经关闭,避免同窗口多开
if (WaveForm.IsDisposed == true)//判断该控件有无释放,若释放则重新创建窗体
{
//如果窗体已经关闭,需要重新创新
WaveForm = new WaveForm();
}
}
//新建窗体
//WaveForm = new WaveForm();//发现不用if语句判断直接创建窗体也能实现一样的功能
//窗体展示
WaveForm.Show();
//设置波形窗体紧靠主窗体
this.Left = 0;//主窗体左边的坐标为0
WaveForm.Location = this.Location;//主窗体坐标赋给子窗体
WaveForm.Left = this.Right;//主窗体的右显示坐标赋给子窗体左显示坐标
}
//主窗体位置改变事件-主窗体随子窗体移动
private void Form1_LocationChanged(object sender, EventArgs e)
{
//如果子窗体打开
if (WaveForm != null)
{
WaveForm.Location = this.Location;//主窗体坐标赋给子窗体
WaveForm.Left = this.Right;//主窗体的右显示坐标赋给子窗体左显示坐标
}
}
点击波形显示按钮,弹出波形显示子窗体,且按照预设位置进行窗体展示,子窗体随主窗体移动,功能添加成功,
参考自B站硬件家园