private void UserToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (Form fr in this.splitContainer1.Panel2.Controls)
{
if (fr is frmUserInfor)(能进判断,就是获得不了,业不报错,汗~)
{
fr.Activate();(Focus())都试过了
return;
}
}
frmUserInfor frmuser = new frmUserInfor();
frmuser.WindowState = FormWindowState.Maximized;
frmuser.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmuser);
frmuser.Show();
frmuser.Dock = DockStyle.Fill;
}
21 个解决方案
#1
up
#2
用如下的语句试试看:
this.splitContainer1.Panel2.Controls.SetChildIndex(fr,0);
this.splitContainer1.Panel2.Controls.SetChildIndex(fr,0);
#3
是放在判断里面吗?
#4
是的
#5
好
hbxtlhx(平民百姓-自已动手,丰衣足食
你已经有10分拉
还有一个问题啊
主界面A
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
界面FormPxb
上面加了一个 panel
private void pictureBox2_Click(object sender, EventArgs e)
{
foreach (Control fr in this.panel1.Controls)
{
if (fr is frmEquipmentInfor)
{
this.panel1.Controls.SetChildIndex(fr, 0);
fr.Focus();
return;
}
}
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
A界面的事件 能触发 能show出 界面FormPxb ,当界面FormPxb 里面show出界面frmEquipmentInfor 后,,再触发A界面的事件 每次都show出界面frmEquipmentInfor ,界面FormPxb
根本不出来,我搞了半个下午了,每次都是界面frmEquipmentInfor得焦点,我纳闷得很
麻烦你再看看啊 小弟在线等你
hbxtlhx(平民百姓-自已动手,丰衣足食
你已经有10分拉
还有一个问题啊
主界面A
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
界面FormPxb
上面加了一个 panel
private void pictureBox2_Click(object sender, EventArgs e)
{
foreach (Control fr in this.panel1.Controls)
{
if (fr is frmEquipmentInfor)
{
this.panel1.Controls.SetChildIndex(fr, 0);
fr.Focus();
return;
}
}
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
A界面的事件 能触发 能show出 界面FormPxb ,当界面FormPxb 里面show出界面frmEquipmentInfor 后,,再触发A界面的事件 每次都show出界面frmEquipmentInfor ,界面FormPxb
根本不出来,我搞了半个下午了,每次都是界面frmEquipmentInfor得焦点,我纳闷得很
麻烦你再看看啊 小弟在线等你
#6
等啊等啊 解决有分那……
#7
没有太明白frmEquipmentInfor 和FormPxb 的关系。。。
#8
等等啊
#9
frmEquipmentInfor 和FormPxb
FormPxb 里面的一个相当于按钮事件 show 出 frmEquipmentInfor界面啊
FormPxb 里面的一个相当于按钮事件 show 出 frmEquipmentInfor界面啊
#10
show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?
#11
不是一起显示啊,只需要激活 FormPxb 就行了
可是 每次都是激活frmEquipmentInfor,有点莫明其妙啊
可是 每次都是激活frmEquipmentInfor,有点莫明其妙啊
#12
A 触发B B 触发C后
A想触发B,可是却总是显示C
A想触发B,可是却总是显示C
#13
大致意思 还是 原先的 那种焦点问题啊
#14
看不出什么问题,可能没有你的那个真实环境不好想像。不好意思。
#15
好吧 先给你10分 等我写了详细点 你再帮我吧
#16
结帖了哦 大虾)
#17
分已经给了啊
问题是
“show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?”
改成……一起显示并且FormPxb显示在frmEquipmentInfor上啊
大侠看见 再帮忙一下啊 在线等
问题是
“show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?”
改成……一起显示并且FormPxb显示在frmEquipmentInfor上啊
大侠看见 再帮忙一下啊 在线等
#18
做为Mdi子窗体后,这个窗体不会再有像OwnerForm一样的效果了。
如果是非Mdi窗体,那么对一个窗体可以使用AddOwnerForm来添加一个类似楼主说的窗体,但是一但这个窗体是Mdi类型的,那么就没有了那个效果。实际上这个要靠一些事件及代码手动的来实现了。比如先激活FormPxb窗体使其放到所有窗体最上,然后跟着再激活frmEquipmentInfor窗体,使它处于所有窗体最上。
但是我又糊涂了,看楼主的意思是说激活FormPxb后frmEquipmentInfor自动的显示到了最上了,这我就不知道了,应该是激活FormPxb后FormPxb就是最前面了,我说的激活,是指使用SetChildIndex(fr, 0)方法后再Active。
如果是非Mdi窗体,那么对一个窗体可以使用AddOwnerForm来添加一个类似楼主说的窗体,但是一但这个窗体是Mdi类型的,那么就没有了那个效果。实际上这个要靠一些事件及代码手动的来实现了。比如先激活FormPxb窗体使其放到所有窗体最上,然后跟着再激活frmEquipmentInfor窗体,使它处于所有窗体最上。
但是我又糊涂了,看楼主的意思是说激活FormPxb后frmEquipmentInfor自动的显示到了最上了,这我就不知道了,应该是激活FormPxb后FormPxb就是最前面了,我说的激活,是指使用SetChildIndex(fr, 0)方法后再Active。
#19
是啊 我就是这样激活的啊 按你的方法啊
可是 以激活 它就始终显示frmEquipmentInfor(只要你之前点击过FormPxb上的按钮show出过frmEquipmentInfor)
splitContainer左边panel1 右边panel2
左边内(panel1)的按钮show 出窗体FormPxb 放在右边panel2上,FormPxb(有个panel ,按钮在panel内) 上的按钮show出frmEquipmentInfor后仍然放在panel2上,现在 我想在点左边内的按钮show出FormPxb,它就始终显示frmEquipmentInfor,同时 这些控件窗体 都在一个子窗体frmmain内
两段主要代码
frmmain上的
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
FormPxb上的
private void pictureBox2_Click(object sender, EventArgs e)
{
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
麻烦你拉
可是 以激活 它就始终显示frmEquipmentInfor(只要你之前点击过FormPxb上的按钮show出过frmEquipmentInfor)
splitContainer左边panel1 右边panel2
左边内(panel1)的按钮show 出窗体FormPxb 放在右边panel2上,FormPxb(有个panel ,按钮在panel内) 上的按钮show出frmEquipmentInfor后仍然放在panel2上,现在 我想在点左边内的按钮show出FormPxb,它就始终显示frmEquipmentInfor,同时 这些控件窗体 都在一个子窗体frmmain内
两段主要代码
frmmain上的
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
FormPxb上的
private void pictureBox2_Click(object sender, EventArgs e)
{
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
麻烦你拉
#20
"它就始终显示frmEquipmentInfor……"这段话也就是你点左边panel1内的按钮它始终没反应
但是如果你在frmmain内的 其他按钮show出一个另外的 窗体放在panel2上
你再点panel1内的按钮它就始终显示frmEquipmentInfor了
汗~~
真不好意思
但是如果你在frmmain内的 其他按钮show出一个另外的 窗体放在panel2上
你再点panel1内的按钮它就始终显示frmEquipmentInfor了
汗~~
真不好意思
#21
等会发到你邮箱吧
#1
up
#2
用如下的语句试试看:
this.splitContainer1.Panel2.Controls.SetChildIndex(fr,0);
this.splitContainer1.Panel2.Controls.SetChildIndex(fr,0);
#3
是放在判断里面吗?
#4
是的
#5
好
hbxtlhx(平民百姓-自已动手,丰衣足食
你已经有10分拉
还有一个问题啊
主界面A
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
界面FormPxb
上面加了一个 panel
private void pictureBox2_Click(object sender, EventArgs e)
{
foreach (Control fr in this.panel1.Controls)
{
if (fr is frmEquipmentInfor)
{
this.panel1.Controls.SetChildIndex(fr, 0);
fr.Focus();
return;
}
}
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
A界面的事件 能触发 能show出 界面FormPxb ,当界面FormPxb 里面show出界面frmEquipmentInfor 后,,再触发A界面的事件 每次都show出界面frmEquipmentInfor ,界面FormPxb
根本不出来,我搞了半个下午了,每次都是界面frmEquipmentInfor得焦点,我纳闷得很
麻烦你再看看啊 小弟在线等你
hbxtlhx(平民百姓-自已动手,丰衣足食
你已经有10分拉
还有一个问题啊
主界面A
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
界面FormPxb
上面加了一个 panel
private void pictureBox2_Click(object sender, EventArgs e)
{
foreach (Control fr in this.panel1.Controls)
{
if (fr is frmEquipmentInfor)
{
this.panel1.Controls.SetChildIndex(fr, 0);
fr.Focus();
return;
}
}
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
A界面的事件 能触发 能show出 界面FormPxb ,当界面FormPxb 里面show出界面frmEquipmentInfor 后,,再触发A界面的事件 每次都show出界面frmEquipmentInfor ,界面FormPxb
根本不出来,我搞了半个下午了,每次都是界面frmEquipmentInfor得焦点,我纳闷得很
麻烦你再看看啊 小弟在线等你
#6
等啊等啊 解决有分那……
#7
没有太明白frmEquipmentInfor 和FormPxb 的关系。。。
#8
等等啊
#9
frmEquipmentInfor 和FormPxb
FormPxb 里面的一个相当于按钮事件 show 出 frmEquipmentInfor界面啊
FormPxb 里面的一个相当于按钮事件 show 出 frmEquipmentInfor界面啊
#10
show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?
#11
不是一起显示啊,只需要激活 FormPxb 就行了
可是 每次都是激活frmEquipmentInfor,有点莫明其妙啊
可是 每次都是激活frmEquipmentInfor,有点莫明其妙啊
#12
A 触发B B 触发C后
A想触发B,可是却总是显示C
A想触发B,可是却总是显示C
#13
大致意思 还是 原先的 那种焦点问题啊
#14
看不出什么问题,可能没有你的那个真实环境不好想像。不好意思。
#15
好吧 先给你10分 等我写了详细点 你再帮我吧
#16
结帖了哦 大虾)
#17
分已经给了啊
问题是
“show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?”
改成……一起显示并且FormPxb显示在frmEquipmentInfor上啊
大侠看见 再帮忙一下啊 在线等
问题是
“show 出 frmEquipmentInfor界面后,楼主的意思是想当激活FormPxb 的时候要FormPxb 和frmEquipmentInfor一起显示并且frmEquipmentInfor显示在FormPxb之上吗?”
改成……一起显示并且FormPxb显示在frmEquipmentInfor上啊
大侠看见 再帮忙一下啊 在线等
#18
做为Mdi子窗体后,这个窗体不会再有像OwnerForm一样的效果了。
如果是非Mdi窗体,那么对一个窗体可以使用AddOwnerForm来添加一个类似楼主说的窗体,但是一但这个窗体是Mdi类型的,那么就没有了那个效果。实际上这个要靠一些事件及代码手动的来实现了。比如先激活FormPxb窗体使其放到所有窗体最上,然后跟着再激活frmEquipmentInfor窗体,使它处于所有窗体最上。
但是我又糊涂了,看楼主的意思是说激活FormPxb后frmEquipmentInfor自动的显示到了最上了,这我就不知道了,应该是激活FormPxb后FormPxb就是最前面了,我说的激活,是指使用SetChildIndex(fr, 0)方法后再Active。
如果是非Mdi窗体,那么对一个窗体可以使用AddOwnerForm来添加一个类似楼主说的窗体,但是一但这个窗体是Mdi类型的,那么就没有了那个效果。实际上这个要靠一些事件及代码手动的来实现了。比如先激活FormPxb窗体使其放到所有窗体最上,然后跟着再激活frmEquipmentInfor窗体,使它处于所有窗体最上。
但是我又糊涂了,看楼主的意思是说激活FormPxb后frmEquipmentInfor自动的显示到了最上了,这我就不知道了,应该是激活FormPxb后FormPxb就是最前面了,我说的激活,是指使用SetChildIndex(fr, 0)方法后再Active。
#19
是啊 我就是这样激活的啊 按你的方法啊
可是 以激活 它就始终显示frmEquipmentInfor(只要你之前点击过FormPxb上的按钮show出过frmEquipmentInfor)
splitContainer左边panel1 右边panel2
左边内(panel1)的按钮show 出窗体FormPxb 放在右边panel2上,FormPxb(有个panel ,按钮在panel内) 上的按钮show出frmEquipmentInfor后仍然放在panel2上,现在 我想在点左边内的按钮show出FormPxb,它就始终显示frmEquipmentInfor,同时 这些控件窗体 都在一个子窗体frmmain内
两段主要代码
frmmain上的
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
FormPxb上的
private void pictureBox2_Click(object sender, EventArgs e)
{
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
麻烦你拉
可是 以激活 它就始终显示frmEquipmentInfor(只要你之前点击过FormPxb上的按钮show出过frmEquipmentInfor)
splitContainer左边panel1 右边panel2
左边内(panel1)的按钮show 出窗体FormPxb 放在右边panel2上,FormPxb(有个panel ,按钮在panel内) 上的按钮show出frmEquipmentInfor后仍然放在panel2上,现在 我想在点左边内的按钮show出FormPxb,它就始终显示frmEquipmentInfor,同时 这些控件窗体 都在一个子窗体frmmain内
两段主要代码
frmmain上的
private void pictureBox3_Click(object sender, EventArgs e)
{
foreach (Form fra in this.splitContainer1.Panel2.Controls)
{
if (fra is FormPxb)
{
this.splitContainer1.Panel2.Controls.SetChildIndex(fra, 0);
fra.Activate();
return;
}
}
FormPxb frmpxb = new FormPxb();
frmpxb.WindowState = FormWindowState.Maximized;
frmpxb.MdiParent = this;
this.splitContainer1.Panel2.Controls.Add(frmpxb);
frmpxb.Show();
frmpxb.Dock = DockStyle.Fill;
}
FormPxb上的
private void pictureBox2_Click(object sender, EventArgs e)
{
frmEquipmentInfor frmE = new frmEquipmentInfor();
frmE.WindowState = FormWindowState.Maximized;
frmE.MdiParent = frmmain;
this.panel1.Controls.Add(frmE);
frmE.Show();
frmE.Dock = DockStyle.Fill;
}
麻烦你拉
#20
"它就始终显示frmEquipmentInfor……"这段话也就是你点左边panel1内的按钮它始终没反应
但是如果你在frmmain内的 其他按钮show出一个另外的 窗体放在panel2上
你再点panel1内的按钮它就始终显示frmEquipmentInfor了
汗~~
真不好意思
但是如果你在frmmain内的 其他按钮show出一个另外的 窗体放在panel2上
你再点panel1内的按钮它就始终显示frmEquipmentInfor了
汗~~
真不好意思
#21
等会发到你邮箱吧