Klasa służąca do obsługi opcji w formularzu.

0

Otóż chciałbym się dowiedzieć jak napisać klasę za pomocą, której wykonam poniżej opisaną czynność.
Program zaczyna się pokazując w jednej linii dwa textboxy i checkboxa. Po wciśnięciu checkboxa (nie liczy się teraz dla mnie sprawdzanie treści textboxa) ma się stworzyć nowa linia tuż pod starą analogicznie do poprzedniej ma zawierać w jednej linii dwa textboxy i checkbox, który umożliwia odblokowanie następnej linii.
Ogólnie graficznie ma to wyglądać następująco:

[=========] [====] [V]
textbox1 textbox2 checkbox1

Zrobiłem to tylko, że ręcznie i po prostu nie widzę sensu w tym, żeby wszystko przepisywać na kolejne checkboxy, szczególnie, że ma ich być około 50 linii.

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
textBox4.Visible = true;
textBox5.Visible = true;
checkBox2.Visible = true;
}
else
{
textBox4.Visible = false;
textBox5.Visible = false;
checkBox2.Visible = false;
checkBox2.Checked = false;
}
}


W przypadku kiedy rozwiniemy powiedzmy dwadzieścia linii i odznaczymy pierwszą wszystkie poprzednie linie nam znikają, a np. odznaczymy dziesiątą to znika wszystko do dziesiątej linii, czyli do jedenastej włącznie, ale tylko znika, a nie usuwa się zawartość textboxow.
Prosiłbym forumowiczów o radę oraz o szybką odpowiedź.
P.S.
Czy jest konieczność, abym tworzył wszystkie obiekty (textbox, checkbox) czy jest możliwość ich wygenerowanie podczas działania programu no i przede wszystkim ustawienie w odpowiednim miejscu?
0

Napisz sobie funkcję która będzie ci dynamicznie dodawać i usuwać te kontrolki na Parent-a np z apomocą Parent.Controls.Add(twoja kontrolka) i obliczaj sobie podstawowe dane, które sterują położeniem i rozmiarem twojej Kontrolki. De facto rozmiar możesz brać z tych wcześniej stworzonych a położenie (Location) sobie wyliczaj.

0
ziutek3946 napisał(a)

czy jest możliwość ich wygenerowanie podczas działania programu
Szukaj pod hasłem "dynamiczne tworzenie komponentów".

0

Ustawianie w odpowiednim miejscu będzie łatwiej zrealizować używając TableLayoutPanel niż samemu się bawiąc w obliczenia i ustawiania Location.

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