相关疑难解决方法(0)

如何将我的应用程序窗口置于前面?

如何将我的应用程序窗口置于前面?例如,我的应用程序需要注意.

这是我的个人计划.我需要这个功能.

这就是我得到的.但它没有 100%的工作时间.

public void BringToFrontToEnterCaptha()
{
    if (InvokeRequired)
    {
        Invoke(new Action(BringToFrontToEnterCaptha));
    }
    else
    {
        this.TopMost = true;
        this.Focus();
        this.BringToFront();
        this.textBox1.Focus();
        this.textBox1.Text = string.Empty;
        System.Media.SystemSounds.Beep.Play();
    }
}

public void BringToBackAfterEnterCaptha()
{
    if (InvokeRequired)
    {
        Invoke(new Action(BringToBackAfterEnterCaptha));
    }
    else
    {
        this.TopMost = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

我从背景工作者那里打电话给他们.

BringToFrontToEnterCaptha();
while (!ready)
{
    Thread.Sleep(100);
}
BringToBackAfterEnterCaptha();
Thread.Sleep(300);
Run Code Online (Sandbox Code Playgroud)

按"接受"按钮后,bool ready设置为true.

我工作得很好,但并不总是.

.net c# winforms

77
推荐指数
7
解决办法
16万
查看次数

将Windows窗体应用程序带到前台的"正确"方法是什么?

我正在用C#编写Windows窗体应用程序.我需要能够把它带到前台.经过一些谷歌搜索和实验,我有一个看起来非常h​​acky的工作解决方案.

如果有的话,我想知道这样做的优雅方式.我需要应用程序恢复并前往前台,无论它是最小化,还是最小化,但在后台.

当前代码如下所示:

WindowState = FormWindowState.Minimized;
WindowState = FormWindowState.Normal;
BringToFront();
Focus();
Run Code Online (Sandbox Code Playgroud)

c# visual-studio-2008 winforms

31
推荐指数
4
解决办法
4万
查看次数

设置活动窗口

我正在尝试制作一个提供地震式下拉式HUD控制台的应用程序.我可以让它显示和隐藏窗口,但我无法弄清楚如何在显示它之后将其设置为活动窗口.我使用Win API调用来显示和隐藏窗口.我试过SetForegroundWindow(IntPtr hWnd)和SetFocus(IntPtr hWnd)无济于事.有人有主意吗?

http://pastebin.com/DgtJJGiv

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

    SetForegroundWindow(h);
    System.Diagnostics.Debug.WriteLine(h);
}
Run Code Online (Sandbox Code Playgroud)

c# winapi

8
推荐指数
1
解决办法
2万
查看次数

SwitchToThisWindow将当前窗口发送到后面

所以,是的,我发现自己处于一个可疑的位置,即执行一个SwitchToThisWindow强制我的窗口到前面的调用.我同意,它并不理想,但并不总是可以反对别人认为必要的产品"功能".

现在,我认为SwitchToThisWindow是一个胜利的AttachThreadInput黑客做强制窗口切换,因为它不太可能死锁,应该SwitchToThisWindow被删除,或停止运作我不会抱怨.

但是,SwitchToThisWindow除了在为fAltTab参数传递FALSE时将目标窗口置于顶部,并且如果传递TRUE则不执行任何操作时,会产生令人遗憾的副作用,即将当前前景窗口推送到z顺序的底部.

如何避免这种"推动当前活动到z-bottom"的行为而不诉诸AttachThreadInput

或者,MS可以删除AttachThreadInput作为一个可行的解决方法,我可以告诉我的经理,实际上,不可能,实际上是不可能的.

windows winapi

6
推荐指数
1
解决办法
2807
查看次数

如何将 Windows 窗体置于顶部?

I am developing a windows form application in C#. This application shows some text on the Form when a special kind of external event occurs (For example suppose that I want to write "Mouse is on upper line" on form when in the mouse's position y=0). I need to bring the Form to top of every other window when the event occurs.

c# winforms

5
推荐指数
1
解决办法
4648
查看次数

标签 统计

c# ×4

winforms ×3

winapi ×2

.net ×1

visual-studio-2008 ×1

windows ×1