C#窗体的一个置顶问题 50

我设置一个按钮点击之后弹出另外一个窗体然后关闭新窗体后旧窗体自然而然获得焦点但是有一定几率会在其他窗体的后面(相当于是置于底层)代码大概:按钮点击事件{Formf=一个新... 我设置一个按钮 点击之后 弹出另外一个窗体 然后关闭新窗体后
旧窗体自然而然获得焦点
但是有一定几率会在其他窗体的后面(相当于是置于底层)
代码大概:

按钮点击事件{
Form f=一个新窗体
f.ShowDialog(this);显示窗体
}
在新窗体F中 有一个按钮 按钮被按之后 调用Hide();隐藏新窗体
接下来就回到了旧窗体 旧窗体依旧有获得焦点
但是旧窗体有一定几率位于所有窗体的底层
(真的是有一定几率 大概5次有1次 会这样)

如图 Form1有焦点 但是窗体没有在最顶层 要重新最小化再最大化才有效果.

求大神解决.
可以的话 解释一下原因 和提供解决办法
展开
 我来答
Lim
2013-06-07 · 知道合伙人软件行家
Lim
知道合伙人软件行家
采纳数:152 获赞数:1014
资深研发工程师,敏捷教练ScrumMaster

向TA提问 私信TA
展开全部
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 frm=new Form2();
            frm.ShowDialog();
            frm.VisibleChanged += frm_VisibleChanged;
        }
        void frm_VisibleChanged(object sender, EventArgs e)
        {
            this.Show();
        }

 给frm的visiblechanged事件,加个让旧窗体再show一下就可以了

四叶草知识小铺
推荐于2018-04-16 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:162
采纳率:50%
帮助的人:133万
展开全部
在show的时候设置窗口置于顶层FORM.TopMost=true
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
miniapp6KZPTyUR9UWez
2013-06-07 · TA获得超过1731个赞
知道大有可为答主
回答量:7286
采纳率:24%
帮助的人:1032万
展开全部
调用windowsAPI函数将窗体放到最前面
更多追问追答
追问
给函数名称啊
50分就换您这句话?
追答
先用Findwindow,再用ShowWindow
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式