【发布时间】:2012-04-12 23:08:37
【问题描述】:
我正在使用此代码.. 现在默认情况下我的应用是 topMost = true
但是当我尝试让按钮在下面执行此功能时,我遇到了一个问题,它会禁用它一次。然后第二次点击不再。
public void setTop()
{
if (this.TopMost == false)
{
this.TopMost = true;
}
if (this.TopMost == true)
{
this.TopMost = false;
}
任何想法为什么?过去通过菜单设置热键也发生过这种情况,我能够做到一次,然后就没有工作了:(
编辑:我发现了如何做到这一点,但无法从另一个表单中做到这一点。
private void button1_Click(object sender, EventArgs e)
{
pwn4g3 mainForm = new pwn4g3();
mainForm.TopMost = true();
mainForm.Update();
}
【问题讨论】:
-
代码提示:永远不要写
if(x == true),你也应该写if(!x)而不是if(x == false)。不过,在这种情况下,this.TopMost = !this.TopMost;足以满足整个方法的需求。 -
你也可以只写 TopMost = !TopMost。
-
呃,等等,如果它被禁用,你如何点击它第二次?更改 TopMost 有很多可能的副作用,即重新创建本机 Windows 窗口。您需要改进您的证据以帮助我们帮助您。有此问题的小型复制项目最好,如果仍然太大而无法发布,请将其发布到文件共享服务。
-
@minitech 我做了,但它失败了,我将它重写为认为它可能有效。但是没有。
-
@hansPassant 就像我说的那样,我称之为 setTop();在按钮中,如果禁用则启用,如果启用则禁用。但它不会工作不止一次。