Metoda wywołująca funkcję przy zamknięciu formy C#

0
  1. Wywołuję z głównej formy okno i chce go oprogramować tak, żeby po
    ponownym naciśnięciu przycisku, które go wywołuje (w trakcie gdy to okno
    jest aktywne tylko ukryte za głównym) nie wywołał go drugi raz tylko
    wyciągnęło na wierzch. Tą część z blokowaniem wywołania drugiego już
    zrobiłem za pomocą bool-a, tylko nie wiem jakiej oprogramować, żeby przy
    zamykaniu tego okna X zmienić wartość tego bool-a?
  2. Jakiej metody użyć, żeby Panel pokrył całe okno( zapewne tu coś poknociłem przy wywoływaniu)?
  3. Jak ustawić okno, żeby przy maksymalizowaniu jego zawartość się rozciągnęła?
  4. Tego jeszcze nie szukałem, ale jak by miał ktoś jakiś link, alby by
    opisał jak stworzyć/dodać windowsową wyszukiwarkę plików, coś typu np:
    File|Open Project w VS.
0

tylko nie wiem jakiej oprogramować, żeby przy zamykaniu tego okna X zmienić wartość tego bool-a?
Na przykład w evencie FormClosed zamykanego okna.

  1. Jakiej metody użyć, żeby Panel pokrył całe okno( zapewne tu coś poknociłem przy wywoływaniu)?
  2. Jak ustawić okno, żeby przy maksymalizowaniu jego zawartość się rozciągnęła?

Właściwości Dock i Anchor.

Jak stworzyć/dodać windowsową wyszukiwarkę plików
OpenFileDialog.

0

Na przykład w evencie FormClosed zamykanego okna.

wywołuje okno:
private void WyswietlPomoc(object send, EventArgs sl)
{

        if (!isActive)
        {
            fp.Show();
            isActive = true;
        }
    }

w oknie pomocy w ten sposób wywołuję FormClosed
this.FormClosed += Formpomoc_Closed;
private void Formpomoc_Closed(object sender, System.Windows.Forms.FormClosedEventArgs ea)
{
_fp = true;
}
a zeby znów zmienic isActive na false
w głównym sprawdzam wartość _fp
if (fp._fp)
{
isActive = false;
}

Właściwości Dock i Anchor.

Jak pomaluje ten panel to wygląda że Dock rozciągna, ale jak chce wywołać na tym panelu User Control to ucina w taki sam sposób jak wcześniej, a Anchor przypina tylko do aplikacji z wybranej strony.

tak wywołuje OpenFileDialog:

    private void Addfilm(object sender, EventArgs ea)
    {
        //SetContent(panel, new Dodaj_film());
        //new Form2().Show();
        openfile.Filter = "Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*";
        if (openfile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
            
             name.Text = openfile.FileName;
             link.Text = openfile.SafeFileName;

         }
    }

a kompilator wyrzuca mi żeby zaznaczyć STAThreadAttribute, tyle ze to okno jest wywoływane z rodzica wiec nie ma maina i nie wiem gdzie i jak zaznaczyć?

An unhandled exception of type 'System.Threading.ThreadStateException' occurred in System.Windows.Forms.dll

Additional information: Bieżący wątek musi być ustawiony na tryb jednowątkowego apartamentu, aby można było wykonywać wywołania OLE. Upewnij się, że w funkcji Main jest zaznaczony element STAThreadAttribute. Ten wyjątek jest wywoływany tylko wtedy, gdy do tego procesu zostanie dołączony debuger.

0

Z OpenFileDialog i rozmiarem panel poradziłem sobie. Jak by ktoś mógł podpowiedzieć co źle robię przy blokowaniu otwarcia drugi raz tego samego okna w czasie jego aktywności:

wywołuje okno:

    private void WyswietlPomoc(object send, EventArgs sl)

    {



        if (!isActive)

        {

            fp.Show();

            isActive = true;

        }

    }

w oknie pomocy w ten sposób wywołuję FormClosed

this.FormClosed += Formpomoc_Closed;

private void Formpomoc_Closed(object sender, System.Windows.Forms.FormClosedEventArgs ea)

{

_fp = true;

}

a zeby znów zmienic isActive na false

w głównym sprawdzam wartość _fp

        if (fp._fp)

        {

            isActive = false;

        }

i jak ustawić okno/kontrolkę aby przy zmianie rozmiaru okna rozmiar kontrolki także się zmienił.

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