簡體   English   中英

無模式表單未獲得輸入焦點

[英]Modeless form doesn't receive the input focus

我有一個Windows窗體(“ form1”),該窗體在調用Application.Run()之前(在不使用該窗體作為參數的情況下Application.Run()Application.Run()程序的主線程中用ShowDialog()打開。 從主線程創建另一個線程(“ thread2”),該線程與主線程並行運行。 按下“ form1”中的按鈕,將在“ thread2”中創建另一個表單(“ form2”),並使用Show()方法Show() 問題:“ form2”無法獲得輸入焦點,並且無法接收鍵盤或鼠標輸入。

form2的創建如下:

public form2( )
{
    InitializeComponent();
    this.WindowState = FormWindowState.Normal;
    this.TopMost = true;
    this.SetStyle( ControlStyles.Selectable, true );
    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    this.Bounds = Screen.PrimaryScreen.Bounds;
}

我在OnFocusLosing事件上創建了一個處理程序,該處理程序將一個字符串寫入控制台,然后看到form2在創建后就失去了焦點。 是用ShowDialog()打開並在主線程中運行的form1可以吸引焦點嗎? 我試圖在創建form2之前最小化form1,但這沒有幫助。

如何獲得一種形式來接收輸入焦點?

據我所知,Windows Forms應用程序中只有一個UI線程,您不能只是衍生出線程並期望用戶能夠與之交互。

如果您確實需要兩個獨立的UI線程,則可以嘗試以下方法: https : //social.msdn.microsoft.com/Forums/zh-CN/3f0e7794-8671-47c4-aa9a-3bd1f85c9963/how-to-create-a-winform -app與-雙UI線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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