当前位置:  开发笔记 > 编程语言 > 正文

在C#中打开一个没有焦点的表单

如何解决《在C#中打开一个没有焦点的表单》经验,为你挑选了2个好方法。

我正在制作一些永远在顶的吐司作为形式,当我打开它们时,我希望它们在打开时不要从其他形式中夺走焦点.我怎样才能做到这一点?

谢谢



1> Adam Robinso..:
protected override bool ShowWithoutActivation
{
    get
    {
        return true;
    }
}

在表单代码中覆盖此属性,它应该为您完成.


应该注意的是,如果您的表单将TopMost属性设置为true,则此方法不起作用,要将此覆盖与最顶层表单一起使用,您必须覆盖CreateParams并在ExStyle上设置WS_EX_TOPMOST.

2> 小智..:

我花了几分钟时间使用Adam的&Aaron上面的信息,但我终于让它为我工作了.我必须做的一件事是确保表单的Top Most属性设置为false.这是我用过的代码......

    protected override bool ShowWithoutActivation { get { return true; } }

    protected override CreateParams CreateParams
    {
        get
        {
            //make sure Top Most property on form is set to false
            //otherwise this doesn't work
            int WS_EX_TOPMOST = 0x00000008;
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= WS_EX_TOPMOST;
            return cp;
        }
    }

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有