• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Nowa foremka w Windows Forms App

Object Storage Arubacloud
+1 głos
132 wizyt
pytanie zadane 28 sierpnia 2020 w C# przez Kacperxoo Początkujący (330 p.)
Witam

Ostatnio zacząłem tworzyć aplikację w Windows Forms App i napotkałem na problem, który męczy mnie przez ostatnie naście godzin. Wydaje mi się, że szukałem wszędzie i nic nie mogę znaleźć, ale do rzeczy, kompletnie nie wiem, jak zrobić np. przycisk, który po naciśnięciu wyświetli nową zawartość formy, tzn. jest TextBox na login i hasło oraz przycisk do zalogowania i chciałbym, aby po naciśnięciu przycisku "zaloguj" wyświetliła się nowa zawartość formy, a nie, żeby wyskoczyło nowe okienko z inną zawartością.

Próbowałem rozwiązania w którym pojawia się Form2 i znika mainForm, ale np w wypadku, w którym przestawię na ekranie mainForm w inne miejsce, niż startowe, to Form2 pojawi się w miejscu startowym, a nie w centrum mainForm.

Bardzo liczę na jakiś pomysł, bo już powoli tracę nadzieję, na odnalezienie tego rozwiązania... Z góry dzięki

1 odpowiedź

+1 głos
odpowiedź 28 sierpnia 2020 przez VBService Ekspert (253,340 p.)
wybrane 28 sierpnia 2020 przez Kacperxoo
 
Najlepsza

Pierwszy sposób: Show form as ShowDialog(); - in action wink

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Text = "Form2.ShowDialog";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 Form2 = new Form2();
            Form2.StartPosition = FormStartPosition.CenterParent;
            Form2.ShowDialog(this);
            
        }
    }
}

Pierwszy sposób: Form2.StartPosition = FormStartPosition.Manual

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            button1.Text = "FormStartPosition.Manual";
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 Form2 = new Form2();
            Form2.Location = new Point(
                  (this.Location.X + this.Width / 2) - (Form2.Width / 2),
                  (this.Location.Y + this.Height / 2) - (Form2.Height / 2)
            );
            Form2.StartPosition = FormStartPosition.Manual;
            Form2.Show();
            this.Hide();
        }
    }
}

 

komentarz 28 sierpnia 2020 przez Kacperxoo Początkujący (330 p.)

Wielkie dzięki, tworzyłem teraz appke i już naprawdę zaczynałem tracić nadzieję i chęci, a dopiero zaczynam z okienkami i przeszedłem z c++ na c# ze względu na windows forms app.

Jeszcze jedno pytanie, mianowicie da się coś zrobić, aby Form 1 znikało, po pojawieniu się Form 2? Korzystałem z komend podanych niżej, lecz Form1 nie znika.

Form1 form1 = new Form1();
form1.Hide();

// oraz 

this.Hide();
komentarz 28 sierpnia 2020 przez VBService Ekspert (253,340 p.)

Jak wywołujesz z Form1 wystarczy

1
komentarz 28 sierpnia 2020 przez Kacperxoo Początkujący (330 p.)

Znaczy przy użyciu pierwszej metody komenda this.Hide(); nie działa, 

a przy użyciu drugiej już tak. W każdym razie dzięki laugh

Podobne pytania

+1 głos
3 odpowiedzi 1,110 wizyt
pytanie zadane 21 sierpnia 2020 w C# przez Filip Sośnicki Nowicjusz (230 p.)
+1 głos
2 odpowiedzi 132 wizyt
pytanie zadane 8 lipca 2023 w C# przez xFrikeQ Nowicjusz (130 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...