簡體   English   中英

防止點擊按鈕激活表單

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM