加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 设置活动窗口

发布时间:2020-12-15 07:42:23 所属栏目:百科 来源:网络整理
导读:我正在尝试制作一个提供地震式下拉式HUD控制台的应用程序.我可以让它显示和隐藏窗口,但我无法弄清楚如何在显示它之后将其设置为活动窗口.我使用Win API调用来显示和隐藏窗口.我试过SetForegroundWindow(IntPtr hWnd)和SetFocus(IntPtr hWnd)无济于事.有人有
我正在尝试制作一个提供地震式下拉式HUD控制台的应用程序.我可以让它显示和隐藏窗口,但我无法弄清楚如何在显示它之后将其设置为活动窗口.我使用Win API调用来显示和隐藏窗口.我试过SetForegroundWindow(IntPtr hWnd)和SetFocus(IntPtr hWnd)无济于事.有人有主意吗?

http://pastebin.com/DgtJJGiv

public void ShowApp()
{
    IntPtr h = FindWindow(null,"C:Windowssystem32cmd.exe");
    ShowWindow(h,SW_SHOW);
    //EnableWindow(h,true);
    isHidden = false;
        // set focus to console window

    SetForegroundWindow(h);
    System.Diagnostics.Debug.WriteLine(h);
}

解决方法

我在这里找到了答案:
How to show form in front in C#

winAPI方法对我来说不正常但是这样做:

form.TopMost = true;
form.TopMost = false;

我最初只是将TopMost设置为true,但是我遇到了显示在表单后面的对话框的问题.似乎将TopMost设置为true会将表单拉到前面并将其保留在那里.将其设置为false不会将其推回,但允许其他表单显示在前面.我仍然有焦点问题所以我最终得到以下内容:

form.Activate();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读