c#mdi窗体激活但不获取焦点怎么实现?

我在一个父容器内已经show出来一个mdi子窗体A,我想在这个子窗体A内调用父容器show出另外一个mdi子窗体B但不获取焦点,也就是焦点还在A那里。最重要的是A还要向B... 我在一个父容器内已经show出来一个mdi子窗体A,我想在这个子窗体A内调用父容器show出另外一个mdi子窗体B但不获取焦点,也就是焦点还在A那里。最重要的是A还要向B传参数!求解决方案,解决后追加! 展开
 我来答
玩转数据处理
推荐于2016-05-13 · 数据处理,Python,dotnet
玩转数据处理
采纳数:1613 获赞数:3794

向TA提问 私信TA
展开全部

也就是说你还是先要在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
追问
嗯,现在关键是active()form1之后把Form2挡住了,悲剧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式