//PRZYCISKI //przycisk Wyślij private void praca_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: Praca 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(); //zamykam obecne okno i otwieram nowe (mniej klikania niż przez menu) Praca praca2 = new Praca(); praca2.Show(); //to samo co w oknie głównym, tylko robione z poziomu wywołania tego okna za pomocą przycisku wyślij praca2.Uzupelnianie_obserwacji += new EventHandler <Moje_Arg_Wydarzen>(praca2_Uzupelnianie_obserwacji); } else { ActiveForm.Close(); //zamykam to okno po prostu } }
// działanie opcji Plik/Nowa ankieta/Praca private void pracaToolStripMenuItem_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() == "Szkoła") { MessageBox.Show("Pracujesz na danych z ankiety Szkoła. Rozpocznij nowa sesję, by pracować z ankietą Praca.", "Inna ankieta"); } else { //zapobiegamy 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 == "Praca") { OknoOtwarte = true; f.Focus(); //przełącza na otwarte okno break; } } //otwieranie okna Praca if (OknoOtwarte == false) { Praca praca1 = new Praca(); praca1.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 = praca1.IleGroupBoxwOknie(praca1); //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ął praca1.Uzupelnianie_obserwacji += new EventHandler <Moje_Arg_Wydarzen>(praca1_Uzupelnianie_obserwacji); } } }