c#mdi窗体激活但不获取焦点怎么实现?
我在一个父容器内已经show出来一个mdi子窗体A,我想在这个子窗体A内调用父容器show出另外一个mdi子窗体B但不获取焦点,也就是焦点还在A那里。最重要的是A还要向B...
我在一个父容器内已经show出来一个mdi子窗体A,我想在这个子窗体A内调用父容器show出另外一个mdi子窗体B但不获取焦点,也就是焦点还在A那里。最重要的是A还要向B传参数!求解决方案,解决后追加!
展开
2个回答
展开全部
也就是说你还是先要在A窗体上面做操作然后调用父窗体的方法show出B咯,是吧
1.激活方法可以用遍历Mdi子窗体就行了,下面是激活方法
private void toolStripButton1_Click(object sender, EventArgs e)
{
foreach (Form item in this.MdiChildren)
{
if (item.Text == "窗口 1")
{
item.Activate();
}
}
}
2.A向B传参数的话用公共静态类 或 B 提供公共静态方法咯
更多追问追答
追问
Activate()方法会使B获取到焦点,这时候A就失去焦点了,我是想用键盘一直操作A创,所以一旦焦点跑了操作就不流畅了
追答
不是很理解你说的,发项目到我邮箱帮你看看M978718484@163.com
2014-08-01
展开全部
form1:
private void button2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Tim = "123";
frm2.MdiParent = this.MdiParent;
frm2.Show();
}
form2
private string tim;
public string Tim
{
get { return tim; }
set { tim = value; }
}
private void Form2_Shown(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(tim))
{
label3.Text = tim;
this.MdiParent.MdiChildren.First(item => item.Name == "Form1").Activate();
}
}
说明:form1 show出form2,并传递参数tim,form2接受参数,然后在Form2_Shown 方法里去Activate 出form1
private void button2_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Tim = "123";
frm2.MdiParent = this.MdiParent;
frm2.Show();
}
form2
private string tim;
public string Tim
{
get { return tim; }
set { tim = value; }
}
private void Form2_Shown(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(tim))
{
label3.Text = tim;
this.MdiParent.MdiChildren.First(item => item.Name == "Form1").Activate();
}
}
说明:form1 show出form2,并传递参数tim,form2接受参数,然后在Form2_Shown 方法里去Activate 出form1
追问
嗯,现在关键是active()form1之后把Form2挡住了,悲剧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询