第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

應(yīng)用程序獲得/失去焦點(diǎn)事件

應(yīng)用程序獲得/失去焦點(diǎn)事件

C#
開滿天機(jī) 2022-06-18 17:02:32
我有一個(gè)使用無參數(shù) Show()-Methode 打開一些子窗口的應(yīng)用程序。因此子窗口沒有所有者,這使它們能夠位于主窗口的后面或前面。現(xiàn)在我想知道整個(gè)應(yīng)用程序是否獲得或失去焦點(diǎn)。是否有一個(gè)事件可以做到這一點(diǎn)?我嘗試了 OnActivate/OnDeactivate 和 OnGotFocus/OnLostFocus,它們只報(bào)告單個(gè)表單的事件。這意味著當(dāng)應(yīng)用程序失去焦點(diǎn)時(shí)會(huì)觸發(fā) OnLostFocus 事件,但如果另一個(gè)表單獲得焦點(diǎn),也會(huì)觸發(fā)。
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

您可以WM_ACTIVATEAPP在主表單中處理并獲得有關(guān)激活或停用應(yīng)用程序的通知:


private const int WM_ACTIVATEAPP = 0x1C;

protected override void WndProc(ref Message m)

{

    if (m.Msg == WM_ACTIVATEAPP)

    {

        if (m.WParam == IntPtr.Zero)

            BeginInvoke(new Action(() => { Text = "Deactivated"; }));

        else

            BeginInvoke(new Action(() => { Text = "Activated"; }));

    }

    base.WndProc(ref m);

}

注意:正如 Hans 在評(píng)論中已經(jīng)提到的,使用上述選項(xiàng)時(shí),應(yīng)注意不要陷入死鎖和無限循環(huán)。確保您閱讀了評(píng)論。


Activate作為另一種選擇,您還可以通過處理和Deactivate事件檢測每個(gè)表單的激活或停用。當(dāng)表單停用時(shí),您可以通過檢查是否Form.ActiveForm有值來檢查應(yīng)用程序是否仍在前臺(tái):


private void f_Deactivate(object sender, EventArgs e)

{

    BeginInvoke(new Action(() =>

    {

        if (Form.ActiveForm == null)

            Text = "App Deactivated"; //App deactivated

        else

            Text = "Still Active";   //App is still active

    }));

}


查看完整回答
反對(duì) 回復(fù) 2022-06-18
  • 1 回答
  • 0 關(guān)注
  • 211 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)