kilka oknien i ikona w trayu

0

Witajcie, mam następujący problem, piszę aplikację, która ma być ukryta po uruchomieniu, a koło zegara ma znajdować się jej ikona. Do ikona ma być dołączone menu, które otwiera i zamyka okienka aplikacji, mam 2 problemy:

  1. Nie mogę znaleźć klasy odpowiedzialnej za tworzenie ikony, przejrzałem całą sekcję System.Windows i nic.

  2. Środowisko sharp develop wygenerowało mi takie tworzenie okna:

          public static void Main(string[] args)
		{
			Application.EnableVisualStyles();
			Application.SetCompatibleTextRenderingDefault(false);
			Application.Run(new MainForm());
		}

lecz gdy chcę wywołać taką funkcję tworząc nowe okno, kompilator się burzy:

Application.Run(new ConfigurationForm(this));

Jak mogę dynamicznie zarządzać otwartymi w aplikacji okienkami (ustawiać jedno, by było zawsze na wierzchu, otwierać i zamykać okna bez kończenia aplikacji)

Proszę o pomoc

0
hubert_nnn1 napisał(a)

Witajcie, mam następujący problem, piszę aplikację, która ma być ukryta po uruchomieniu, a koło zegara ma znajdować się jej ikona. Do ikona ma być dołączone menu, które otwiera i zamyka okienka aplikacji, mam 2 problemy:

  1. Nie mogę znaleźć klasy odpowiedzialnej za tworzenie ikony, przejrzałem całą sekcję System.Windows i nic.

Jesli chcesz zeby program byl ukryty po uruchomieniu musisz w trybie Desing w Properties swojego formularza ustawic wlasciwosc ShowInTaskBar na false.

Nastepnie dodaj NotifyIcon do formularza. Dodaj zdarzenie Click dla tej kontrolki i umiesc nastepujacy kod:

private void notifyIcon1_Click(object sender, EventArgs e)
        {
            this.ShowInTaskbar = true;
            this.Show();
            notifyIcon1.Visible = false;
        }

Dodaj zdarzenie Resize dla formularza i umiesc nastepujacy kod:

 private void Form1_Resize(object sender, EventArgs e)
        {
            if (this.WindowState == FormWindowState.Minimized) 
            { 
                this.ShowInTaskbar = true;
                this.Hide(); 
                notifyIcon1.Visible = true; 
            }
        }

Do NotifyIcon mozesz dodac ContexMenu z dodatkowymi opcjami. W tym celu dodaj kontrole ContexMenuStrip. Ustaw w niej odpowiednie menu i zdarzenia klikniecia. Nastepnie w kontrolce NotifyIcon zmien wlasciwosc ContexMenuStrip na kontrolke menu kontekstowego, ktora wlasnie zrobiles.

A zeby sam NotifyIcon sie wyswietlal musisz dla niego ustawic ikone we wlasciwosci Icon.

hubert_nnn1 napisał(a)
  1. Środowisko sharp develop wygenerowało mi takie tworzenie okna:

[...]

Jak mogę dynamicznie zarządzać otwartymi w aplikacji okienkami (ustawiać jedno, by było zawsze na wierzchu, otwierać i zamykać okna bez kończenia aplikacji)

Proszę o pomoc

Sprecyzuj o co chodzi.

0
hubert_nnn1 napisał(a)

Jak mogę dynamicznie zarządzać otwartymi w aplikacji okienkami (ustawiać jedno, by było zawsze na wierzchu, otwierać i zamykać okna bez kończenia aplikacji)

Proszę o pomoc

Jak rozumiem chodzi Ci o to, że tworzysz program, który chodzi w trayu, gdy klikniesz na ikonkę, to pojawi się np. jakieś menu, z którego możesz uruchomić okno z np. jakimiś ustawieniami, tak?

To ja bym zrobił to tak:

  1. Utworzył własną klasę (np. MojProgram) dziedziczącą po ApplicationContext.
  2. Dodał w niej elementy: NotifyIcon (ikonka traya), ContextMenuStrip(menu), ToolStripMenuItem(element menu), wszytko oczywiście odpowiednio zainicjalizował, obsłużył zdarzenia, itd.
    Tu chyba niestety designer nie pomoże - ja takie rzeczy robiłem ręcznie.
  3. W odpowiedniej linijce klasy Program wpisał:
    Application.Run(new MojProgram());
    Wówczas ze aplikacja wystartuje "w tle" - tylko ikona w trayu, bez okna.
  4. Utworzył i skonfigurował w projekcie FormJakis, który będzie uruchamiany na żądanie.
  5. W klasie MojProgram dodał zdarzenie wyboru pozycji z Menu (albo kliknięcia na NotifyIcon, jak chcesz) i wpisał w nim np. taki kod:
FormJakis fj= new FormJakis();
fj.ShowDialog();

Wówczas okno będzie wyskakiwało na żądanie, a jego zamykanie nie będzie powodowało zamykania aplikacji.

0

wielkie dzięki, wszystko działa

1 użytkowników online, w tym zalogowanych: 0, gości: 1