Создание всплывающего окна, такого как Windows Messenger или AVG

StackOverflow https://stackoverflow.com/questions/413656

  •  03-07-2019
  •  | 
  •  

Вопрос

Как я могу создать всплывающее окно, как вы могли бы видеть из Windows Messenger, AVG, Norton или кого-то еще?

Я хочу, чтобы она показала информацию, а затем ускользнула через несколько секунд.

Редактировать: он должен блокироваться, как Form.ShowDialog () , поскольку программа завершает работу после отображения уведомления

Это было полезно?

Решение

Вы можете использовать элемент управления notifyIcon, который является частью .NET 2.0 System.Windows.Forms. Это позволяет вам разместить значок для вашего приложения в системном трее. Затем вы можете вызвать метод ShowBalloonTip (int timeOut) для этого. Обязательно сначала установите текст и свойства значков на notifyIcon, чтобы он работал. Небольшой пример кода:

private void button1_Click(object sender, EventArgs e)
        {
            this.notifyIcon1.BalloonTipText = "Whatever";
            this.notifyIcon1.BalloonTipTitle = "Title";
            this.notifyIcon1.Icon = new Icon("icon.ico");
            this.notifyIcon1.Visible = true;
            this.notifyIcon1.ShowBalloonTip(3);
        }

РЕДАКТИРОВАТЬ: Хорошо, так notifyIcon не будет работать для вас. Моим вторым предложением было бы создать собственный контроль для этого. На самом деле, я бы использовал форму. Простая форма, без границ, без блока управления и просто с запущенным таймером, так что вы можете установить непрозрачность для постепенного исчезновения. Затем вы можете легко получить правый нижний угол экрана, используя Rectangle Screen.PrimaryScreen.WorkingArea. Затем просто покажите свою форму в этой позиции.

Другие советы

Не создавайте модальный (блокирующий) воздушный шар. Пожалуйста. Большая часть дизайна этих пользовательских интерфейсов состоит в том, что они являются не диалоговыми окнами: это временные, потенциально неинтерактивные элементы, предназначенные для предоставления случайной информации пользователю < em> без обязательно прерывая их рабочий процесс. Воздушный шар, который крадет фокус и блокирует пользовательский ввод, будет в лучшем случае раздражать - если вам нужен диалог, используйте диалог.

Возможно, вы захотите взглянуть на эту статью. http://www.codeproject.com /KB/miscctrl/RobMisNotifyWindow.aspx с кодом для отображения окна уведомлений, похожего на MSN Messenger

.NET 1.1 Visual Basic Power Pack имел тостер контроль.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top