本人在使用WeifenLuo.WinFormsUI.Docking组件,各个业务窗体之间传递参数,但是当把某个子窗体关闭后,在打开会出现invalid content问题。在主窗体的构造函数中这样写的: m_PicCha = new PictureCharacterTable(m_dbConn);//图片显示窗体
m_frmProperty = new Frm_Property(m_dbConn, m_PicCha, m_picShow);//属性显示窗体
m_fileshow = new Frm_FileShowing(m_frmProperty, m_picShow);//文件显示窗体
m_folder = new Frm_Folder(m_fileshow, m_dbConn, m_frmProperty, m_PicCha); //文件夹窗体
在主窗体的菜单栏的文件夹窗体中的事件如下: private void menuItem_FolderWin_Click(object sender, EventArgs e)
{
if (!ShowChildrenForm(m_folder.Text))//
{
m_folder = new Frm_Folder(m_fileshow, m_dbConn, m_frmProperty, m_PicCha);
m_folder.MdiParent = this;
if (m_folder != null)
{
m_folder.m_fileshow = m_fileshow;
}
m_folder.Show(dockPanel1);
}
}
private bool ShowChildrenForm(string p_ChildrenFormText)
{
int i;
//依次检测当前窗体的子窗体
for (i = 0; i < this.MdiChildren.Length; i++)
{
//判断当前子窗体的Text属性值是否与传入的字符串值相同
if (this.MdiChildren[i].Text == p_ChildrenFormText)
{
//如果值相同则表示此子窗体为想要调用的子窗体,激活此子窗体并返回true值
this.MdiChildren[i].Activate();
return true;
}
}
//如果没有相同的值则表示要调用的子窗体还没有被打开,返回false值
return false;
}
其他的子窗体的操作类似。望高手给予指教!不甚感激!
本人看了WeifenLuo.WinFormsUI.Docking的源码以及网上的关于WeifenLuo.WinFormsUI.Docking的操作,但是都没有涉及子窗体之间的参数传递问题。望高手指点!
m_frmProperty = new Frm_Property(m_dbConn, m_PicCha, m_picShow);//属性显示窗体
m_fileshow = new Frm_FileShowing(m_frmProperty, m_picShow);//文件显示窗体
m_folder = new Frm_Folder(m_fileshow, m_dbConn, m_frmProperty, m_PicCha); //文件夹窗体
在主窗体的菜单栏的文件夹窗体中的事件如下: private void menuItem_FolderWin_Click(object sender, EventArgs e)
{
if (!ShowChildrenForm(m_folder.Text))//
{
m_folder = new Frm_Folder(m_fileshow, m_dbConn, m_frmProperty, m_PicCha);
m_folder.MdiParent = this;
if (m_folder != null)
{
m_folder.m_fileshow = m_fileshow;
}
m_folder.Show(dockPanel1);
}
}
private bool ShowChildrenForm(string p_ChildrenFormText)
{
int i;
//依次检测当前窗体的子窗体
for (i = 0; i < this.MdiChildren.Length; i++)
{
//判断当前子窗体的Text属性值是否与传入的字符串值相同
if (this.MdiChildren[i].Text == p_ChildrenFormText)
{
//如果值相同则表示此子窗体为想要调用的子窗体,激活此子窗体并返回true值
this.MdiChildren[i].Activate();
return true;
}
}
//如果没有相同的值则表示要调用的子窗体还没有被打开,返回false值
return false;
}
其他的子窗体的操作类似。望高手给予指教!不甚感激!
本人看了WeifenLuo.WinFormsUI.Docking的源码以及网上的关于WeifenLuo.WinFormsUI.Docking的操作,但是都没有涉及子窗体之间的参数传递问题。望高手指点!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货