Odwoływanie się/korzystanie z pozycji w CheckedListBox'ie

0

Witam, emmm... chce zrobić program w którym jak zaznacze na CheckedListBox'ie pozycje pierwszą to do PictureBox'a zostanie z ImageList załadowany analogiczny obrazek.
W CheckedListBox'ie pozycje/pola (to się chyba nazywa index'ami, nie?) są tak nazwane dla czytelności ofc.
MyForm.jpg
MyFormH.jpg
Program (tam jest tylko 1 linia bo co się będę rozpisywał jak testuje) się uruchamia i działa do momentu gdy zaznaczę coś na CheckedListBox'ie, wtedy się zawiesza i trzeba zatrzymać debugowanie.

private: System::Void checkedListBox1_ItemCheck(System::Object^  sender, System::Windows::Forms::ItemCheckEventArgs^  e) {
	while (checkedListBox1->Items[1]) pictureBox1->Image = imageList1->Images[1];
}

Chce żeby nie dało się zaznaczyć więcej niż jednej pozycji naraz w CheckedListBox'ie. W sensie że albo ma się odznaczać uprzednio kliknięta pozycja, po wybraniu innej
albo żeby trzeba było odznaczyć aktualnie zaznaczoną by wybrać inną.
Właściwość Enabled nie wchodzi w grę bo nie będę mógł zmieniać chyba że bym ręcznie odblokował ale wtedy i tak bym musiał odznaczać poprzednie zaznaczenie ręcznie co by spowodowało ponowne zablokowanie już pomijając ze wtedy istniała by opcja zaznaczenia wielu pól. A nawet jakby to miało racje bytu to brzydki sposób, na około.
Czyli muszę (a przynajmniej tak mi się wydaje) odwołać się do wybranej pozycji (indexu?) w CheckedListBox'ie; Nie mam pojęcia jak to zrobić, dokumentacja microsoftu pomocna bynajmniej nie jest, google też not rly.
I rozwiązać problem ograniczenia wyboru pól do jednego.

0

Poszukaj czegoś nazwanego w stylu radio list, ponieważ nie ma absolutnie żadnego sensu wykorzystywanie listy wielokrotnego wyboru do trzymania jednego zaznaczenia.

0

A to że to nie ma większego sensu to ja wiem, ja to chce zrobić w ten sposób bo wiem że się da i chce zobaczyć jak to osiągnąć. Nie umiem korzystać z CheckedListBoxa, ten project ma mnie nauczyć. Więc? Da się to jakoś ogarnąć?

0

Jeśli ktoś kilknie w checkbox, to sprawdź, czy jest to jedyny zaznaczony box.

Jeśli nie jest jedynym:
    Odznacz wszystkie checkbox'y (oprócz tego wybranego)
    Wyczyść canvas (? o ile trzeba)

Narysuj wybrany obrazek.
0

Czemu używasz C++ CLI a nie C#? Celowo utrudniasz sobie życie?
C++ CLI powstał po to by łatwo było pisać pomosty miedzy: native code, a manager code (mieszanie C/C++ z .Net). Każdy inny przepadek użycia to masochizm.

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