没有焦点,表单就不会显示

本文关键字:显示 表单 焦点 | 更新日期: 2023-09-27 18:31:32

我正在使用 C# 窗体在 Windows 中显示 Toast 样式的通知(现有的气球通知有问题,无法满足我的需求)。

我在轮询服务器以进行更改时在子线程上调用以下代码。

Thread notificationThread = new Thread(() =>
{
    NotificationFrame notificationFrame = new NotificationFrame("text1", "text2");
    notificationFrame.Show();
    Application.Run();
});
notificationThread.Name = "Notification thread";
notificationThread.IsBackground = true;
notificationThread.Start();

但是,此窗体并不总是显示。我发现它只有在Visual Studio有焦点时才有效。我尝试在没有附加调试器的情况下运行它,但这会导致表单永远不会显示。

例如:

  1. 我使用调试器运行,并将重点放在VS2015上,帧显示。
  2. 我使用调试器运行并快速切换到另一个窗口,帧不显示。

没有焦点,表单就不会显示

可能是

隐藏的,请使用ShowDialouge()

Thread notificationThread = new Thread(() =>
{
    NotificationFrame notificationFrame = new NotificationFrame("text1", "text2");
    notificationFrame.Visible = true;
    notificationFrame.ShowDialog();
    Application.Run();
});