2010-10-25 13 views
5

Chcę, aby moje (tylko do odczytu, fullrowselect) datagridviews nie miały wybranych wierszy podczas ładowania formularza. Próbowałem .ClearSelection w konstruktorze formularzy po ustawieniu ich źródła danych, ale to nie działa (naprawdę chciałbym wiedzieć, dlaczego ...).Problemy z Datagridview.ClearSelection()

Potem próbowałem w zdarzeniu Form_load, ale nie wyczyści zaznaczenia na datagridviews, które umieściłem na nie widocznych od razu kontenerach kart.

Czy robię coś nie tak? Mogłem to zrobić w zdarzeniu Layout na każdej stronie karty, ale potem odznacza on wiersze za każdym razem, gdy użytkownik zmienia kartę, co nie jest pożądanym zachowaniem.

+0

możesz edytować i wstawić trochę kodu, może widząc, że możemy Ci pomóc lepiej;) – pjnovas

+0

Nie sądzę, że jest to naprawdę konieczne, może spróbuję podać bardziej praktyczne wyjaśnienie: – francis

+0

Mam 3 datagridview w formularz (2 znajdują się na wybranej wcześniej zakładce, a druga na innej karcie) i chcę, aby pojawiły się bez wybranych wierszy. Powinno być tak proste, jak dgv1.ClearSelection(); dgv2.ClearSelection(); etc ... ale kiedy robię to w konstruktorze, dgv zawsze pojawiają się z pierwszym wybranym wierszem. Jeśli zrobię to w zdarzeniu FormLoad, dgv w widoku innej karty będzie nadal miał swój pierwszy wiersz wybrany, gdy zmienię karty ... – francis

Odpowiedz

0

Przymierz wezwać

yourGridView.Update(); 

po wywołaniu

ClearSelection(); 

przerysować siatkę.

+0

nie działa ani w konstruktorze, ani w zdarzeniu FormLoad. – francis

8

Okazało się, że nie działa w FormLoad, ale działa dobrze w FormShown. Musisz ustawić tylko dataGridView1.ClearSelection w FormShown i wszystko działa poprawnie.

+1

Dzięki za to! Prawie zniszczyłem komputer z powodu tej frustracji. LOL! Stało się to po pracy z MDI. – ViFer