我在用这个代码..。现在默认情况下,我的应用程序是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();
}发布于 2012-04-12 23:30:44
public void setTop()
{
if (!this.TopMost)
{
this.TopMost = true;
}
else // change this to else.
{
this.TopMost = false;
}
}在将true分配给this.topmost的版本中,第二个if条件满足。这就是问题的根源。
允许假设代码执行从false开始,然后首先如果满足条件,更改为true,检查第二个if条件,它也满足,然后再次更改为false.。
发布于 2012-04-13 00:58:57
在第二个示例中,您不是正在显示您的Form,请尝试:
private void button1_Click(object sender, EventArgs e)
{
pwn4g3 mainForm = new pwn4g3();
mainForm.Show();
mainForm.TopMost = true;
mainForm.Update();
}另外,如果您使用mainForm.Show(this);,第二个表单将属于您的Parent Form,并且将自动位于顶部。
private void button1_Click(object sender, EventArgs e)
{
pwn4g3 mainForm = new pwn4g3();
mainForm.Show(this);
}但是就我个人而言,如果我想切换最上面的属性,我将使用我的表单变量作为Class级变量,并执行类似的操作。
public partial class Form1 : Form
{
pwn4g3 mainForm = new pwn4g3();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if(mainForm.IsDisposed ) //Check that Form hasn't been destroyed
mainForm = new pwn4g3();
if(!mainForm.Visible) //Make sure it is visible
mainForm.Show();
mainForm.TopMost = !mainForm.TopMost;
this.BringToFront(); //To verify zorder of created form
}
}https://stackoverflow.com/questions/10133114
复制相似问题