Minimise WinForm To Sys Tray

From IronPython Cookbook

You will need a test.ico file in the same directory as this script for it to show in the tray.

import clr

clr.AddReference("System.Windows.Forms")
clr.AddReference("System.Drawing")

from System.Drawing import Icon
from System.Windows.Forms import (Application, Form, NotifyIcon, FormWindowState, MouseButtons)

class Main(Form):

    def __init__(self):
        self.initNotifyIcon()
        self.Resize += self.ResizeForm

    def initNotifyIcon(self):
        self.notifyIcon = NotifyIcon()
        self.notifyIcon.Icon = Icon("test.ico")
        self.notifyIcon.Visible = False
        self.notifyIcon.MouseDoubleClick += self.DoubleClickOnTrayIcon

    def ResizeForm(self, s, e):
        if self.WindowState == FormWindowState.Minimized:
            self.notifyIcon.Visible = True
            self.Visible = False

    def DoubleClickOnTrayIcon(self, s, e):
        if e.Button == MouseButtons.Left:
            self.Visible = True
            if self.WindowState == FormWindowState.Minimized:
                self.WindowState = FormWindowState.Normal
            self.notifyIcon.Visible = False

if __name__ == "__main__":
    main = Main()
    Application.EnableVisualStyles()
    Application.Run(main)


Back to Contents.

TOOLBOX
LANGUAGES