Problem z sortowaniem w dataGridView w Visual C++/CLR i z MessageBox

0

Witam

Mam problem z sortowaniem w dataGridView.
Po kliknieciu w nagłówek kolumny wyskakuje mi błąd System.ArgumentOutOfRangeException.
Wpisy w tabeli to proste stringi i chciał bym by zostały poukładane automaycznie.
Nie mam pustych miejsc w tabeli itp.

Co więcej jeśli sam dodam przycisk i dołącze do niego funkcję Sort(...) program działa bez zażutów. i poprawnie sortuje.

Prubowałem więc wyłączyc sortowanie w dataGridView. Najpierw w eksploratorze w Colection Columns zamieniłem na nie sortowalne ale to nic nie dało. Po kliknięciu w nagłówek wyskakuje znów ten sam błąd. Zmieniłem więc na programowe i nadal to samo.
Więc stwożyłem puste ewenty dla pojedyńczego i podwujnego kliknięcia w nagłówek ale to tez nie pomogło. Prubowałem tez w ewencie pojedyńczego kliknięcia dopisać funkcję Sort(...) ale to tez nic nie pomogło.

Nadal po kliknięciu na nagłówek mam ten sam błąd.

Nie wiem już co robic.

Mam tez kolejny dziwny błąd w programie.

private: System::Void Form1_FormClosing(System::Object sender, System::FormClosingEventArgs e) {
if (MessageBox::Show("Ble ble ble?", "", MessageBoxButtons::YesNo) == System::Yes )
this->Close();
}

Jak zamykam program wyskakuje oczywiście okno i jak naciskam Yes nic się nie dzieje. Program się nie zamyka i okno z pytaniem nie znika. Natomiast jak nacisnę Nie program kończy pracę.

Prosze o pomoc bo nie wiem co się dzieje i jakie mogą byc tego przyczyny.

p.s. Nie jestem programistą tylko inżynierem który potrafi coś napisać i na C++/CLR przesiadłem sie z miesiac temu z Delphi i powoli trace w nim głowę.

Pozdrawiam.

0

Co do drugiego problemu to użyj:
e->Cancel = true;

aby nie zamykać okna.

A jako materiał dokształcający polecam słownik ortograficzny, bo byków zrobiłeś mnóstwo.

0

Ok, dziękuję ze pouczenie i radę.

Ale Twoja rada nie za wiele mi pomogła.
Pomogło za to coś innego.

Mialem dwa eventy w których wyswietlało się to okno dialogowe.
Pierwszy pod przyciskiem na pasku menu. A drugi pod zamykaniem okna.

Oba działały tak samo nieprawidłowo. Czyli po naciśnięciu tak okno dialogowe nie znikało i program się nie zamykał.

Po usunięciu eventu z zamykania okna głównego problem się sam rozwiązał. Ale to nie jest rozwiązanie o jakie mi chodzi ponieważ nic nie rozumiem.

Bardzo proszę o jakieś wyjaśnienia.

Ponadtto do pierwszego problemu to zrobiłem program próbny z dataViewGrid i wprowadziłem do niego trochę danych taką samą metodą jak poprzednio. I ustawiłem sortowanie na wyłączone.
Tym razem wszystko działało porawnie. I nie było błędów.

Porównałem kody obu dataGridView i są takie same.

Wie ktoś o co tu może chodzić?

Pozdrawiam

0

Już prawie po sprawie. Miałem ustawiony ewent kliknięcia w Cell i niestety przykrywał mi się sortowanie po naciśnięciu na nagłówek. A następnie pobierał numer wiersza czyli w tym przypadku -1 i wykożystywał go dalej do wyciągania wpisów z tabeli. Czyli słusznie wyskakiwało ArgumentOutOfRangeException.

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