[英]Prevent button click from activating form
我有一個窗體A,它被另一個窗體B部分覆蓋,這兩個窗體都是獨立的應用程序/進程。
單擊窗體A上的特定按鈕不應導致窗體A獲得焦點/激活(將窗體B保持在前台),而單擊窗體A上的其他任何位置都應將其放在前面/按照您的期望進行激活。
任何有關如何實現這一目標的提示,我們將不勝感激。
我認為沒有“防止單個按鈕激活”的方法。 但是,您可以相反。
在表單上,設置NOACTIVATE
樣式:
protected override CreateParams CreateParams
{
get
{
var createParams = base.CreateParams;
createParams.ExStyle = 0x08000000;
return createParams;
}
}
當您單擊按鈕時,這將阻止激活。 您需要手動激活其他所有功能(使用form.Activate()
)。
不確定是否有相反的方法
我要解決的方法是讓布爾值保持FormB是否在頂部以及是否應調用FormB.Focus();。
private void button1_Click(object sender, EventArgs e)
{
if(FormB.OnTop)
{
FormB.OnTop = false;
this.Focus();
}
else
{
FormB.OnTop = true;
FormB.Focus();
}
}
然后在設計模式下,當FormA獲得焦點調用時創建一個事件
FormB.OnTop = false;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.