设置父窗体时候,这里面的this能不能用别的的替换我,其难道不是代表当前类吗,我用当前类名代换都没有作用,请指点!
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
frmBase fbase1 = new frmBase();
fbase1.MdiParent =
frmBase.strLabel = toolStripMenuItem2.Text.ToString().Trim();
frmBase.strForm = toolStripMenuItem2.Text.ToString() + "窗体";
toolStripMenuItem2.Enabled = false;
fbase1.Show(this); //this代表当前窗体,传递当前窗体
}
还请各位给个解释啊
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
frmBase fbase1 = new frmBase();
fbase1.MdiParent =
frmBase.strLabel = toolStripMenuItem2.Text.ToString().Trim();
frmBase.strForm = toolStripMenuItem2.Text.ToString() + "窗体";
toolStripMenuItem2.Enabled = false;
fbase1.Show(this); //this代表当前窗体,传递当前窗体
}
还请各位给个解释啊
frmbase fbase=new frmbase();
fbase.MdiParent=frm;
可行吗?
两位高手
frmBase fbase1 = new frmBase();
fbase1.Parent = this; // 这样?
从语法上完全可以
但是你运行后会发现,完全不是你要的效果,父窗体中不会有fbase子窗体
原因就是fbase.MdiParent=frm; 局部变量,而你在Program.Main中运行的Form却并不是frm,frm不会show
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
frmBase fbase1 = new frmBase();
frmBase.strLabel = toolStripMenuItem2.Text.ToString().Trim();
frmBase.strForm = toolStripMenuItem2.Text.ToString() + "窗体";
frmMain frm = new frmMain();
fbase1.MdiParent = frm;
toolStripMenuItem2.Enabled = false;
fbase1.Show(this); //this代表当前窗体,传递当前窗体
}
不会出现窗口,弹出这样错误:非顶级窗体不能显示为模式对话框。在调用 Show 之前应从所有父窗体中移除该窗体。
fbase1.MdiParent = frm; 表明fbase1是一个MDI子窗体
显示它就必须先把父窗体frm.show出来,但是这样就会显示两个主窗体了。。
原因就是fbase1.MdiParent设置的实例并不是当前显示的(也就是this)
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
frmBase fbase1 = new frmBase();
fbase1.MdiParent=this;
toolStripMenuItem2.Enabled = false;
//fbase1.Show(this); 原来是用这
}
设置子窗体。
2、我现在通过子窗体的formclosed事件来改frmMain的toolStripMenuItem2.Enabled=true。
怎么办呢?
(如果在FrmMain中用
toolStripMenuItem2.Enabled = false;
fbase1.Show(this);
在frmbase中
frmMain fmain = (frmMain)this.Owner;
fmain.toolStripMenuItem2.Enabled=true;
这种方法可用,但是不能和设置子窗体一起用)
3、我在FrmMain中
public bool toolstripmenu2value
{
get
{
return toolStripMenuItem2.Enabled;
}
set
{
toolStripMenuItem2.Enabled = value;
}
}
来获取属性,
在frmbase中修改,最后还是没有是toolstripmenu2变为黑色求指点