//PRZYCISKI //przycisk Wyślij private void szkola_wyslij_Click(object sender, EventArgs e) { Moje_Arg_Wydarzen Arg_Tabeli = new Moje_Arg_Wydarzen();//tworzymy egzemplarz klasy Moje_Arg_Wydarzen o nazwie Arg_Tabeli (czyli tworzymy argumenty dla wydarzenia) //przypisujemy argumentom wydarzeń wartość string[] rekord = TworzenieRekordu(IleGroupBoxwOknie(ActiveForm)); //dodajemy wiersz do tabeli Arg_Tabeli.wiersz = rekord; string[] etykietki = DodawanieEtykiet(IleGroupBoxwOknie(ActiveForm)); //dodajemy etykiety kolumnom Arg_Tabeli.etykiety = etykietki; WyzwalaczUzupelnianie_obserwacji(Arg_Tabeli); //wywołujemy metodę wyzwalającą wydarzenie (let it happen!) //dodajemy MessageBoxa, by poinformować o wypełnieniu ankiety i możliwości kolejnego jej wypełnienia if (MessageBox.Show("Ankieta: Szkoła została wypełniona i wysłana do bazy danych. \n Czy chcesz wypełnić ją ponownie?", "Kolejne wypełnienie", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { ActiveForm.Close(); //zamykamy obecne okno i otwieram nowe (mniej klikania niż przez menu) Szkoła szkoła2 = new Szkoła(); szkoła2.Show(); //to samo co w oknie głównym, tylko robione z poziomu wywołania tego okna za pomocą przycisku wyślij szkoła2.Uzupelnianie_obserwacji += new EventHandler <Moje_Arg_Wydarzen>(szkoła2_Uzupelnianie_obserwacji); } else { ActiveForm.Close(); //zamykam to okno po prostu } }
//działanie opcji Plik/Nowa ankieta/Szkoła private void szkołaToolStripMenuItem_Click(object sender, EventArgs e) { //jeśli w tabeli głównej znajdują się dane z ankiety Praca, to nie otwieraj okna if (tabela_glowna.RowCount != 0 && tabela_glowna.Rows[0].Cells["ankieta"].Value.ToString() == "Praca") { MessageBox.Show("Pracujesz na danych z ankiety Praca. Rozpocznij nowa sesję, by pracować z ankietą Szkoła.", "Inna ankieta"); } else { //zapobiegam kilkukrotnemu otwarciu tego samego okna; zmodyfikowana wersja kodu z www.c-sharpcorner.com/UploadFile/kirtan007/how-to-prevent-multiple-instances-of-child-form-in-mdi-windows-form-application/ bool OknoOtwarte = false; foreach (Form f in Application.OpenForms) { if (f.Name == "Szkoła") { OknoOtwarte = true; f.Focus(); //przełącza na otwarte okno break; } } //otwieranie okna Szkoła if (OknoOtwarte == false) { Szkoła szkoła1 = new Szkoła(); szkoła1.Show(); if (tabela_glowna.ColumnCount == 0) //jak zamkniemy okno i uruchomimy je z menustrip, to żeby nam nie dodało kolumn jeszcze raz { tabela_glowna.Columns.Add("ankieta", "ankieta"); IleKolumn = szkoła1.IleGroupBoxwOknie(szkoła1); //ustalenie liczby kolumn potrzebnych do tej ankiety for (int i = 1; i <= IleKolumn; i++) //nazywanie kolumn i nagłówków kolumn { string nazwaKolumny = "pytanie" + i.ToString(); string naglowekKolumny = "pytanie" + i.ToString(); tabela_glowna.Columns.Add(nazwaKolumny, naglowekKolumny); } } //chcemy, żeby zostało wykonane wydarzenie Uzupelnianie_obserwacji i zatrudniamy gostka by się tym zajął szkoła1.Uzupelnianie_obserwacji += new EventHandler <Moje_Arg_Wydarzen>(szkoła1_Uzupelnianie_obserwacji); } } }