Наличие приложения минимизирует к системному лотку, когда кнопка нажата?

я задаюсь вопросом, является ли это хорошей практикой?

номер. Это не хорошо. Иногда, это - все, что Вы имеете, но это не хорошо.

И, каков мог быть более эффективный способ реализовать это?

, Как вещи входят в базу данных во-первых?

лучшее изменение состоит в том, чтобы исправить программы, которые вставляют/обновляют базу данных для выполнения запросов, которые переходят к базе данных и к программе. Тема JMS хороша для такого рода вещи.

следующее лучшее изменение состоит в том, чтобы добавить триггер к базе данных для постановки в очередь, каждый вставляет/обновляет событие в очередь. Очередь могла подать тему JMS (или очередь) для обработки Вашей программой.

план нейтрализации является Вашим циклом опроса.

Ваш цикл опроса, однако, не должен тривиально делать работы. Это должно бросить сообщение в очередь для некоторого другого процесса JDBC, чтобы продолжить работать. Запрос завершения является другим сообщением, которое может быть брошено в очередь JMS. Когда Ваша программа получает сообщение завершения, она абсолютно должна быть закончена с предшествующим запросом JDBC и может остановиться корректно.

Прежде, чем сделать любое из этого, посмотрите на решения ESB. Sun JCAPS или TIBCO уже имеет это. ESB с открытым исходным кодом как Mulesource или Jitterbit можно было уже создать эту функциональность уже и протестированный.

7
задан MusiGenesis 18 August 2009 в 23:16
поделиться

3 ответа

Я полагаю, вы имеете в виду свернуть в системный лоток, потому что вы говорили о значках и всплывающих сообщениях?

Следующий код устанавливает значок на панели задач:

private void SetUpTrayIcon()
{
    notifyIcon = new System.Windows.Forms.NotifyIcon();
    notifyIcon.BalloonTipText = "Ballon minimize text";
    notifyIcon.BalloonTipTitle = "Ballon minimize title";
    notifyIcon.Text = "Icon hover text";
    notifyIcon.Icon = new  System.Drawing.Icon(
               System.Reflection.Assembly.GetExecutingAssembly()
                   .GetManifestResourceStream("MyIcon.ico"));
    notifyIcon.Click += new EventHandler(HandlerToMaximiseOnClick);
}

Чтобы отобразить значок в лоток (вы можете сделать это, например, в событии изменения состояния окна, сделайте что-то вроде следующего:

if (notifyIcon != null)
{
    notifyIcon.Visible = true;
    notifyIcon.ShowBalloonTip(2000);
}

Чтобы отобразить баллон при наведении курсора мыши, вы хотите использовать тот же код, что и выше, возможно, в перемещении мыши для значка .

Примечание: ShowBalloonTip перегружен, если вы хотите изменить сообщение в разных точках. Сообщение, отображаемое всплывающим окном, будет учитывать символы новой строки, например Environment.NewLine может быть добавлено к нему.

10
ответ дан 6 December 2019 в 19:40
поделиться

попробуйте

свернуть

this.WindowState = FormWindowState.Minimized;

свести к минимуму, чтобы увидеть это

Как правильно свернуть в трей приложение C # WinForms?

Пока

3
ответ дан 6 December 2019 в 19:40
поделиться

Всплывающее окно будет отображать все, что показано в строке заголовка формы (то есть свойством .Text формы). Я не знаю, как сделать его многострочным (если есть способ, он обязательно будет сложным и, вероятно, не стоит хлопот).

Этот предыдущий вопрос дает некоторые ответы на основной вопрос . Ваш набор инструментов содержит элемент управления под названием NotifyIcon - используйте его, чтобы разместить значок на панели задач.

0
ответ дан 6 December 2019 в 19:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: